我遇到一个问题,即模板文件中未定义GetName
。
代码: http://hastebin.com/wixomerapi.js
但如果我写
console.log(results[0].name);
而不是GetName = results[0].name
它的工作正常!
这里有什么不对吗? :/
答案 0 :(得分:1)
更好的解决方案是使用options参数并设置选择。
Model.find({field: 'value'}, {select: ['id', 'name']})
.paginate({page: 1}, {limit: 10)
.exec(function(err, results) {
if(err) {
res.badRequest('reason');
}
res.json(results);
});
答案 1 :(得分:0)
试试这个,
ViewGame: function (req, res) {
var GetName;
Games.findBySlug(req.params.tournamentName).exec(function(err, results) {
GetName = results[0].name;
res.view('game/view', {
name : GetName,
});
});
},
您必须了解Javascript回调的工作原理。
在您的代码函数中,在调用ViewGame函数后,按以下顺序执行:
Games.findBySlug(req.params.tournamentName).exec()函数调用后续调用以下回调函数。
function(err, results) {
GetName = results[0].name;
});
调用以下函数。
res.view('game/view', {
name : GetName,
});
调用以下功能(在第1步安排)。
function(err, results) {
GetName = results[0].name;
});
由于在" res.view"中设置了GetName,因此未分配(在第3步中进行分配)。在第二步。但是当你使用" console.log"它只是打印"结果[0] .name"的值。在第3步。