Einige Vorschläge
Bezüglich des Ajax-Aufrufs in index.html
- Falls Ihre
index.html
von demselben Server bedient wird, verwenden Sie bitte keinen domänenübergreifenden Aufruf. Dieurl
-Eigenschaft in$.ajax
könnte eine relative URL wie/start
sein . - Sie können auch daran denken,
jsonp
nicht zu verwenden Anfrage.
Der Aufruf könnte wie folgt aussehen
$.ajax({
dataType: 'json',
data: $('#formID').serialize(),
type: 'POST',
url: "./start",
success: handleButtonResponse,
});
Wie/Wo stellt JSON eine Verbindung zu/von MongoDB her?
In Ihrem Ajax-Aufruf fordern Sie ./start
an , Also sollte die gleiche Route in Ihrem Express-Server gemacht werden. wie
app.get('/start', function (req, res) {
db.collection('collectionName').insert({req.data}, function (err, doc) {
//rest of code
});
});
erfordert Express eine Vorlagen-Engine wie Consolidate? Wenn ja, wie/wo passt das rein?
Sie haben viele Optionen für Vorlagen wie Jade, Ejs, Hbs usw. Wenn Sie Jade oder eines davon verwenden, wird Ihr HTML-Rendering-Code in Expressrouten vereinfacht.
ohne Template-Engine
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();
mit einer Templating-Engine wie Jade (jetzt Mops)
var submittedPost = {};
submittedPost['message'] = 'Proof that Node and Mongo are working..';
response.json(submittedPost);
Auch mit Templating-Engines können Sie Vorlagen mit serverseitigen Variablen rendern und in Ihren Vorlagen wie
darauf zugreifenapp.get('/mypage', function (req, res) {
res.render('mytemplate_page',{template_variable:some_variable});
});
und Sie können template_variable
verwenden innerhalb der Vorlage zum Durchlaufen oder Anzeigen.