【发布时间】:2015-10-27 09:38:01
【问题描述】:
我正在尝试用sailsjs 编写一个控制器
module.exports = {
someFunction: function(req, res){
var userID = req.param('id')
User.findUserName(userID, function(err, receiverName){
if(err){
res.serverError(err);
}else{
ReceiverName = receiverName;
}
});
console.log("#####################################");
console.log(ReceiverName);
console.log("#####################################");
.
.
.
.
但是当我部署控制器,重新启动sails应用程序并通过URL调用这个函数时,我在控制台上收到以下错误:
error: Sending 500 ("Server Error") response:
ReferenceError: ReceiverName is not defined
我尝试将变量ReceiverName 声明为全局变量,但仍然无法对其进行排序。我需要有关使其全局化的指导,以便我在 else 部分内为其分配值并在控制器内的任何位置使用它。
注 1:
但是,当我使用代码在 else 块内的控制台上打印变量的值时:
User.findUserName(userID, function(err, receiverName){
if(err){
res.serverError(err);
}else{
console.log("#####################################");
console.log(receiverName);
console.log("#####################################");
}
});
值打印完美。
注2:
我已经在进行异步调用来检索receiverName,所以毫无疑问从异步调用返回响应。我正在寻找将响应存储在可以进一步使用的变量中的方法。
【问题讨论】:
-
将
var ReceiverName;放在module.exports... 上方应该这样做 -
我已经试过了,但没有成功!