MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Esempio di chiamata AJAX a/da MongoDB per Node/Express?

Pochi suggerimenti

Riguardo alla chiamata ajax in index.html

  1. Se il tuo index.html è servito dallo stesso server, quindi non utilizzare una chiamata tra domini. L'url proprietà in $.ajax potrebbe essere un URL relativo come /start .
  2. Inoltre puoi pensare di non usare jsonp richiesta.

la chiamata potrebbe essere tipo

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

Come/dove si connette JSON a/da MongoDB?

Nella tua chiamata ajax stai richiedendo ./start , Quindi lo stesso percorso dovrebbe essere effettuato nel tuo server espresso. come

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

Express richiede un motore di creazione di modelli, come Consolidate? Se sì, come/dove si inserisce?

Hai molte opzioni per la creazione di modelli come jade, ejs, hbs e così via. Se usi jade o qualcuno di essi, il tuo codice di rendering html nei percorsi rapidi verrà semplificato.

senza un motore di creazione di modelli

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 motore di creazione di modelli come jade (ora carlino)

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

anche con i motori di template puoi renderizzare template con variabili lato server e puoi accedervi all'interno dei tuoi template come

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

e puoi usare template_variable all'interno del modello per scorrere o visualizzare.