Малко предложения
Относно извикването на ajax в index.html
- Ако вашият
index.html
се обслужва от същия сървър, тогава, моля, не използвайте междудомейн повикване.url
свойство в$.ajax
може да бъде относителен url като/start
. - Също така можете да помислите да не използвате
jsonp
заявка.
обаждането може да бъде като
$.ajax({
dataType: 'json',
data: $('#formID').serialize(),
type: 'POST',
url: "./start",
success: handleButtonResponse,
});
Как/Къде JSON се свързва към/от MongoDB?
Във вашето ajax повикване вие заявявате ./start
, Така че същият маршрут трябва да бъде направен във вашия експресен сървър. като
app.get('/start', function (req, res) {
db.collection('collectionName').insert({req.data}, function (err, doc) {
//rest of code
});
});
Express изисква ли машина за шаблони, като Consolidate? Ако е така, как/къде се вписва това?
Имате много опции за шаблони като jade, ejs, hbs и т.н. Ако използвате jade или някой от тях, вашият код за изобразяване на html в експресни маршрути ще бъде опростен.
без машина за шаблони
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();
с машина за шаблони като jade (сега pug)
var submittedPost = {};
submittedPost['message'] = 'Proof that Node and Mongo are working..';
response.json(submittedPost);
също така с машини за шаблони можете да изобразявате шаблони с променливи от страна на сървъра и можете да имате достъп до тях във вашите шаблони като
app.get('/mypage', function (req, res) {
res.render('mytemplate_page',{template_variable:some_variable});
});
и можете да използвате template_variable
вътре в шаблона за преминаване през или показване.