我确实在为JavaScript中的回调函数之外的变量赋值时遇到了问题。在下面的代码片段中,我试图从mongodb中的音乐集合中检索文档列表,这需要一个回调,响应/结果驻留在那里,所以我决定在回调中分配temp = response。但是,temp变量仍未定义,因此在渲染模板时我最终会出错。
这是我的代码段:
app.get('/getSongs/', function(req, res) {
var resp = "";
var temp = undefined;
Music.find(function(err, response){
//res.send(response);
temp = response;
});
console.log(temp);
res.render("music_list", {'musics' : temp})
});
这是从console.log(temp)返回的响应:
undefined
我尝试了另一种方法,即将temp直接分配给Music.find调用,最后我得到了其他东西,这不是我想要的。该片段如下所示:
app.get('/getSongs/', function(req, res) {
var resp = "";
var temp = Music.find(function(err, response){
//res.send(response);
});
console.log(temp);
res.render("music_list", {'musics' : temp})
});
并且响应是这样的:
Query {
_mongooseOptions: {},
mongooseCollection:
NativeCollection {
collection: Collection { s: [Object] },
opts:
{ bufferCommands: true,
....
远远不够..
我需要你的帮助来发现导致我无法完成我想要的错误的错误。我是JavaScript世界的新手(我来自C / C ++)
先谢谢