Ho ed expressjs applicazione e su un percorso specifico chiamo una funzione che risponde con un utente dal database chiamando res.json
con il documento di database come parametro. Io uso le librerie basate sulla promessa e ho voluto inline la callback in cui sto inserendo il documento del database nella risposta. Ma il programma fallisce quando lo faccio. Qualcuno può spiegare perché? Mi chiedo anche perché le chiamate in linea a console.log
effettivamente funzionano. C'è qualche differenza fondamentale tra i due metodi res.json
e console.log
?Perché non posso chiamare in linea res.json?
Ecco un esempio di cosa funziona e cosa non funziona. Si supponga che getUserFromDatabase()
restituisca una promessa di un documento utente.
//This works
var getUser = function(req, res) {
getUserFromDatabase().then(function(doc) {
res.json(doc);
});
}
//This does not work (the server never responds to the request)
var getUserInline = function(req, res) {
getUserFromDatabase().then(res.json);
}
//This works (the object is printed to the console)
var printUser = function(req, res) {
getUserFromDatabase().then(console.log);
}
Sembra un legame problema. http://alistapart.com/article/getoutbindingsituations – randunel