MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Exemple d'appel AJAX vers/depuis MongoDB pour Node/Express ?

Quelques suggestions

Concernant l'appel ajax dans index.html

  1. Si votre index.html est desservi par le même serveur, veuillez ne pas utiliser d'appel interdomaine. L'url propriété dans $.ajax pourrait être une URL relative comme /start .
  2. Vous pouvez également penser à ne pas utiliser jsonp demande.

l'appel pourrait ressembler à

$.ajax({
    dataType: 'json',
    data: $('#formID').serialize(),
    type: 'POST',
    url: "./start",
    success: handleButtonResponse,
});

Comment/Où le JSON se connecte-t-il à/depuis MongoDB ?

Dans votre appel ajax, vous demandez ./start , Donc, le même itinéraire doit être fait dans votre serveur express. j'aime

app.get('/start', function (req, res) {    
    db.collection('collectionName').insert({req.data}, function (err, doc) {
           //rest of code 
    });    
});

Express nécessite-t-il un moteur de création de modèles, tel que Consolidate ? Si oui, comment/où cela s'intègre-t-il ?

Vous avez de nombreuses options pour les modèles comme jade, ejs, hbs et ainsi de suite. Si vous utilisez jade ou l'un d'eux, votre code de rendu html dans les routes express sera simplifié.

sans moteur de modèles

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();

avec un moteur de template comme jade (maintenant pug)

var submittedPost = {};
submittedPost['message'] = 'Proof that Node and Mongo are working..';
response.json(submittedPost);

également avec les moteurs de modèles, vous pouvez rendre des modèles avec des variables côté serveur et vous pouvez y accéder à l'intérieur de vos modèles comme

app.get('/mypage', function (req, res) { 
    res.render('mytemplate_page',{template_variable:some_variable});
});   

et vous pouvez utiliser template_variable à l'intérieur du modèle pour le parcourir ou l'afficher.