2017-04-25 96 views
0

我在users.db調用帶有findOne一個簡單的查詢,到目前爲止的數據是:電子Nedb findOne返回null?

{"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

我認爲在findOne中傳遞的函數應該帶2個參數。第一個參數將是查詢的結果,如果出現問題,第二個參數將是錯誤的。如果數據庫中沒有匹配,則第一個參數將爲空,否則應返回匹配結果。

功能(結果,錯誤){

} 這將是你的函數原型

0

我測試你的代碼在我的應用程序

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

它返回一個doc和不確定的,不確定的。 如果使用findOne我猜你只是想找到的第一個文檔,所以在看 doc at 你可以看到,只有兩個參數errdoc 關於空:在您的查詢您使用的變量命名編號?或者它是關鍵,在最後一種情況下,您應該使用引號....