MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

AJAX-Aufruf zu/von MongoDB-Beispiel für Node/Express?

Einige Vorschläge

Bezüglich des Ajax-Aufrufs in index.html

  1. Falls Ihre index.html von demselben Server bedient wird, verwenden Sie bitte keinen domänenübergreifenden Aufruf. Die url -Eigenschaft in $.ajax könnte eine relative URL wie /start sein .
  2. 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 zugreifen
app.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.