Mongoose查询没有't返回错误

Mongoose query doesn't return an error

本文关键字:返回 错误 查询 Mongoose      更新时间:2023-09-26

我在处理猫鼬,我只是想返回集合中的一个对象(据我所知,它相当于SQL表中的一行)。

在我观看的视频中,它说所有来自猫鼬的回调都会返回错误和结果,但我只能返回结果——从不返回错误(记录为未定义),即使我强制执行错误,也不会发生任何事情。

当我出现错误时,我该如何发现?

这是我的密码。

app = require("../server")
dashboard = require("../models/dashboard")
app.get('/request', (req, res)->
  dashboard.users.find({}).exec().then (users, err) ->
    console.log err
    res.send users
)

不管我怎么命名,第二个参数总是没有定义。同样,这是用coffeescript写的,我会在下面有一个javascript版本

var app, dashboard;
app = require("../server");
dashboard = require("../models/dashboard");
app.get('/request', function(req, res) {
  return dashboard.users.find({}).exec().then(function(users, err) {
    console.log(err);
    return res.send(users);
  });
});

传递给回调的第一个参数是错误:

dashboard.users.find({}).exec().then (err, users) ->
  etc...

别介意我的第一个答案,我只是注意到你使用的是promise,它的工作原理与"常规"回调不同。

对于常规回调,传递的第一个参数始终是错误值(或未发生错误时的null),而下面的参数是结果参数(通常只有一个,有时不止一个)。

承诺的工作方式不同,有两个功能:

.then(
  function(results) { ... },
  function(err) { ... }
)

当操作(在本例中为find)成功时,将调用第一个函数。当出现错误时,将调用第二个函数。