sql >> Base de Datos >  >> NoSQL >> MongoDB

Ejemplo de llamada AJAX a/desde MongoDB para Node/Express?

Pocas sugerencias

Con respecto a la llamada ajax en index.html

  1. Si su index.html es atendida por el mismo servidor, entonces por favor no use una llamada entre dominios. La url propiedad en $.ajax podría ser una URL relativa como /start .
  2. También puedes pensar en no usar jsonp solicitud.

la llamada podría ser como

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

¿Cómo/Dónde se conecta el JSON a/desde MongoDB?

En su llamada ajax, está solicitando ./start , por lo que se debe realizar la misma ruta en su servidor express. Me gusta

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

¿Express requiere un motor de plantillas, como Consolidate? Si es así, ¿cómo/dónde encaja eso?

Tiene muchas opciones para plantillas como jade, ejs, hbs, etc. Si usa jade o cualquiera de ellos, su código de representación html en las rutas rápidas se simplificará.

sin un motor de plantillas

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 motor de plantillas como jade (ahora pug)

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

también con los motores de plantillas puede representar plantillas con variables del lado del servidor y puede acceder a ellas dentro de sus plantillas como

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

y puedes usar template_variable dentro de la plantilla para recorrer o mostrar.