Node.js 为什么不';水线回调不会被触发吗?
我正在使用Sails内置模型和ORM来执行MongoDB查询和操作。我遇到的问题是,对于某些查询方法,它的回调永远不会被调用。DB操作已完成,但不会出现回调。下面的代码片段是针对API的控制器方法的模型查询部分,这就是我使用Node.js 为什么不';水线回调不会被触发吗?,node.js,sails.js,waterline,sails-mongo,Node.js,Sails.js,Waterline,Sails Mongo,我正在使用Sails内置模型和ORM来执行MongoDB查询和操作。我遇到的问题是,对于某些查询方法,它的回调永远不会被调用。DB操作已完成,但不会出现回调。下面的代码片段是针对API的控制器方法的模型查询部分,这就是我使用响应对象的原因 LineUp.update({ id: request.param('id') }, { players: [], budgetLeft: 60000000 }). exec(function (err, lineup)
响应
对象的原因
LineUp.update({ id: request.param('id') },
{ players: [], budgetLeft: 60000000 }).
exec(function (err, lineup) {
console.log("Should happen");
return err ? response.send(500) : response.json(lineup);
});
所以,我读过,看起来我真的在做它应该做的,但它不起作用
我所说的不起作用,是指回调ist并没有被执行,我永远看不到应该发生什么,然后任何响应都被发送回客户端,在客户端达到502超时
编辑
我注意到并发现这是一个问题
我首先在我的包.json中使用了“sails mongo”:“^0.10.6”
作为依赖项,并在上一个版本中使用mongodb作为开发依赖项
我和邮递员一起测试了整个代码,没有发现任何问题。在npm安装运行之后,我开始注意到它失败了,然后我发现这是回调问题
更新后,将mongo
导航到^0.11.2
,我可以看到它是如何工作的。然而,当它不工作时,我可以看到其他模型查询
在登台服务器上(遗憾的是没有工作),我有sails mongo^0.10.8
和
2.0.33
模块出现故障时。我将这两个版本都更新到了最新版本,尤其是将sails mongo更新到了0.11.x版本
我不仅要解决这个问题,而且要知道原因。我曾尝试复制错误,但现在它可以正常工作,而两天都没有
编辑2(语法错误或错误?)
我无法通过尝试不同的模块版本来复制错误。但是,同样奇怪的是,我已经确定了哪种代码风格不起作用(没有回调发生)
没有执行回调,导致超时:
LineUp.update({ id: request.param('id') }, { players: [], budgetLeft: 60000000 })
.exec(function(err, lineup) { return err ? response.send(500) : response.json(lineup)});
LineUp.update({id: request.param('id')}, { players: [], budgetLeft: 60000000 }).
exec(function (err, lineups) {
console.log("Happens");
console.log(lineups);
return err ? response.send(500) : response.json(lineups);
});
针对,对以下版本进行简单的签出,这将使其正常工作:
正常工作,执行回调,然后超时,但服务器响应正常:
LineUp.update({ id: request.param('id') }, { players: [], budgetLeft: 60000000 })
.exec(function(err, lineup) { return err ? response.send(500) : response.json(lineup)});
LineUp.update({id: request.param('id')}, { players: [], budgetLeft: 60000000 }).
exec(function (err, lineups) {
console.log("Happens");
console.log(lineups);
return err ? response.send(500) : response.json(lineups);
});
但是,呃,他们不是一样吗强>
可能的bug
编辑失败时找到的3。
当它实际进行修改时,将失败。
所以,无论何时进行匹配,即使在数据库中执行了修改,也不会触发callaback。如果未找到要更新的匹配项,则将执行回调
我用0.11.2、0.10.6和0.10.8版本的sails mongo在package.json上测试了mongodb模块,发现了同样的问题。您使用的是哪个版本的sails mongo?最近有一些连接问题由解决。在my package.json上,我可以看到“sails mongo”:“^0.10.6”
,但实际上没有说明您安装了哪个版本。尝试检查节点/sails mongo/package.json
中的字段version
。如果是0.10.7
,您需要更新到v0.10.8或v0.11.2。在产品线模型上是否有任何验证前/创建前/等?@aclave1我已经为这个问题挣扎了24小时。。你的评论救了我的命。。谢谢。。我应该早点去那里看看。。