Node.js 为什么不';水线回调不会被触发吗?

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)

我正在使用Sails内置模型和ORM来执行MongoDB查询和操作。我遇到的问题是,对于某些查询方法,它的回调永远不会被调用。DB操作已完成,但不会出现回调。下面的代码片段是针对API的控制器方法的模型查询部分,这就是我使用
响应
对象的原因

  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小时。。你的评论救了我的命。。谢谢。。我应该早点去那里看看。。