Mongoose findOne不产生输出或提供整个数据库

时间:2018-03-15 12:31:14

标签: node.js mongodb mongoose

我创建了一个函数来创建基于模式的配置文件到mongoDB,到目前为止工作:

const createUpdateProfile = (req, res) => {
    let uuid = req.user.identities[0].id;
    let provider = req.user.identities[0].provider;
    let email = req.user.email;
    let firstName = req.user.name.split(' ').slice(0, -1).join(' ');
    let lastName = req.user.name.split(' ').slice(-1).join(' ');
    let pictureUrl = req.user.picture;
    let profileToSafe = new Profile({
        uuid: uuid,
        provider: provider,
        email: email,
        firstName: firstName,
        lastName: lastName
    });
    const profile = Profile.findOne({ uuid });
    if (profile !== null) {
        profileToSafe.save();
    }
    res.status(200).send('successful operation');
}

我检查了数据库,文档已存储在那里。

但我无法阅读。

const getProfile = (req, res) => {
    let uuid = req.user.identities[0].id;
    Profile.findOne({ uuid: uuid }), function (obj) { console.log(obj) }, function (err) { console.log(err) };
    res.status(200).send('successful operation');
}

根本没有控制台日志输出。甚至不是null或错误。

我按照提到here做了,我也尝试控制日志findOne函数,但它返回整个数据库的种类,包括身份验证数据。

1 个答案:

答案 0 :(得分:0)

您已在第二个代码段中过早地将参数列表关闭到findOne方法。

Profile.findOne({ uuid: uuid }), function (obj) { console.log(obj) }, function (err) { console.log(err) };

应该是

Profile.findOne({ uuid: uuid }, function (obj) { console.log(obj) }, function (err) { console.log(err) });