我用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吗?
答案 0 :(得分:0)
我认为在findOne中传递的函数应该有2个参数。第一个参数将是查询和的结果 如果出现问题,第二个参数将是错误的。如果db中没有匹配,则第一个参数为Null。否则它应该返回匹配结果。
功能(结果,错误){
} 这将是你的原型
答案 1 :(得分:0)
我在我的应用中测试了您的代码
db.findOne({ "c2cId":"292" }, function (err, a,b,c) {
console.log(a,b,c);
});
它返回一个doc和undefined,undefined。
如果你使用findOne
,我想你只是想找到第一个文档,所以看看
doc at
您可以看到只有两个参数err
和doc
关于null:在您的查询中,您使用的是名为id的变量吗?或者它是关键,在最后一种情况下你应该使用引号....