MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Exemplo de chamada AJAX para/do MongoDB para Node/Express?

Algumas sugestões

Em relação à chamada ajax em index.html

  1. Se seu index.html é servido pelo mesmo servidor, então não use uma chamada de domínio cruzado. O url propriedade em $.ajax pode ser um URL relativo como /start .
  2. Você também pode pensar em não usar jsonp solicitação.

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

Como/onde o JSON se conecta ao/do MongoDB?


Em sua chamada ajax, você está solicitando ./start , Portanto, a mesma rota deve ser feita em seu servidor expresso. Curti
app.get('/start', function (req, res) {    
    db.collection('collectionName').insert({req.data}, function (err, doc) {
           //rest of code 
    });    
});

O Express requer um mecanismo de modelagem, como o Consolidate? Em caso afirmativo, como/onde isso se encaixa?


Você tem muitas opções para modelagem como jade, ejs, hbs e assim por diante. Se você usar jade ou qualquer um deles, seu código de renderização html em rotas expressas será simplificado.

sem um mecanismo de modelagem
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();

com um mecanismo de modelagem como jade (agora pug)
var submittedPost = {};
submittedPost['message'] = 'Proof that Node and Mongo are working..';
response.json(submittedPost);

também com mecanismos de modelagem, você pode renderizar modelos com variáveis ​​​​do lado do servidor e acessá-los dentro de seus modelos, como
app.get('/mypage', function (req, res) { 
    res.render('mytemplate_page',{template_variable:some_variable});
});   

e você pode usar template_variable dentro do modelo para percorrer ou exibir.