Pochi suggerimenti
Riguardo alla chiamata ajax in index.html
- Se il tuo
index.html
è servito dallo stesso server, quindi non utilizzare una chiamata tra domini. L'url
proprietà in$.ajax
potrebbe essere un URL relativo come/start
. - Inoltre puoi pensare di non usare
jsonp
richiesta.
la chiamata potrebbe essere tipo
$.ajax({
dataType: 'json',
data: $('#formID').serialize(),
type: 'POST',
url: "./start",
success: handleButtonResponse,
});
Come/dove si connette JSON a/da MongoDB?
Nella tua chiamata ajax stai richiedendo ./start
, Quindi lo stesso percorso dovrebbe essere effettuato nel tuo server espresso. come
app.get('/start', function (req, res) {
db.collection('collectionName').insert({req.data}, function (err, doc) {
//rest of code
});
});
Express richiede un motore di creazione di modelli, come Consolidate? Se sì, come/dove si inserisce?
Hai molte opzioni per la creazione di modelli come jade, ejs, hbs e così via. Se usi jade o qualcuno di essi, il tuo codice di rendering html nei percorsi rapidi verrà semplificato.
senza un motore di creazione di modelli
response.writeHead(200, {"Content-Type:": "application/json"});
var submittedPost = {};
submittedPost['message'] = 'Proof that Node and Mongo are working..';
response.write( "_wrapper('" );
response.write( JSON.stringify(submittedPost) );
response.write( "')");
response.end();
con un motore di creazione di modelli come jade (ora carlino)
var submittedPost = {};
submittedPost['message'] = 'Proof that Node and Mongo are working..';
response.json(submittedPost);
anche con i motori di template puoi renderizzare template con variabili lato server e puoi accedervi all'interno dei tuoi template come
app.get('/mypage', function (req, res) {
res.render('mytemplate_page',{template_variable:some_variable});
});
e puoi usare template_variable
all'interno del modello per scorrere o visualizzare.