0

我正在用 findOne 调用一个简单的查询,到目前为止 users.db 中的数据是:

{"id":40, "is_admin":1,"name":"John Smith"},
{"id":43, "is_admin":1,"name":"Laura Smith"}


// Users
  var users = new Datastore({ filename: 'db/users.db' });
  var id_user = 43;


  console.log("-------------geting users db");
  //
  users.loadDatabase(function (err) {

    console.log("------------- users db loaded--", id_user);

    // find user by id
    users.findOne({ id: id_user }, function (err, a,b,c) {
      console.log(a,b,c); // displays null undefined undefined
    });


  });

知道为什么返回 null 吗?

4

2 回答 2

0

我认为在 findOne 中传递的函数应该采用 2 个参数。第一个参数将是查询的结果,如果出现问题,第二个参数将是错误。如果 db 中没有匹配项,则第一个参数将为 Null。否则它应该返回匹配结果。

函数(结果,错误){

它将是你的函数原型

于 2017-05-03T21:37:52.800 回答
0

我在我的应用程序中测试了您的代码

db.findOne({ "c2cId":"292" }, function (err, a,b,c) {
  console.log(a,b,c); 
});

它返回一个文档和未定义的、未定义的。如果你使用findOne我猜你只是想找到第一个文档,所以查看 文档 你可以看到只有两个参数errdoc 关于 null:在你的查询中你是否使用了一个名为 id 的变量?或者它是关键,在最后一种情况下你应该使用引号......

于 2017-05-04T09:48:56.253 回答