簡體   English   中英

NodeJS和Mongoose不返回文檔

[英]NodeJS & Mongoose not returning documents

我有一條接收POST請求的路由:

router.post('/auth', (req, res, next) => {
    const username = req.body.username;
    const password = req.body.password;

    User.getUserByUsername(username, (err, user) => {
        if(err) 
            return res.json({success: false, msg: err});
        if(!user) 
            return res.json({success: false, msg: 'User not found'});
        return res.json(user);
});
});

這是我當前收藏的文件:

db.User.find().pretty()
{
        "_id" : ObjectId("59d0e0465d91ce115f50935c"),
        "name" : "Soufiane",
        "email" : "example@gmail.com",
        "username" : "example",
        "password" : "123"
}

使用Restman,這是我的請求正文:

{
    "username": "example",
    "password": "123"
}

但是結果是“找不到用戶”,這是我的getUserByUsername函數:

module.exports.getUserByUsername = (_username, callback) => {
    const query = {username: _username};
    User.findOne(query, callback);
};

“用戶”模型已連接到正確的數據庫,並且連接狀態= 1,在控制台上沒有出現任何錯誤,那么可能是什么問題呢? 提前致謝

解決了,貓鼬文檔說:

第一個參數是您的模型所使用的集合的單數名稱。 貓鼬會自動查找您的型號名稱的復數形式。 因此,對於上面的示例,模型Tank用於數據庫中的tanks集合。

我沒有注意這一點,因為我的模型的名稱是User,所以我應該有一個名為users的集合,但是我在數據庫中擁有的只是User,在創建“ users”集合后,一切都可以進行了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM