为什么猫鼬中用户对象的属性显示为未定义?

时间:2018-10-02 13:37:15

标签: node.js express mongoose

这是我的架构:

var UserSchema = new Schema ({
    username: String,
    password: String,
    nativeLanguage: {
        type: String, 
        default: "English"
    },

此路由将用户对象打印到控制台。

router.get('/add', isLoggedIn, async (req, res) => {
    const Users = await User.find({_id: req.params._id});
    console.log(req.user);
    res.render('add', {User});
    });

我要做的是在add页面上呈现用户的特定属性,以测试我是否首先尝试在控制台中访问它们。不幸的是User.nativeLanguage出现为undefined,我不知道为什么。

2 个答案:

答案 0 :(得分:0)

User是模型,您命名的Users是用户记录。

答案 1 :(得分:0)

假设您导出模型。

exports.User = UserSchema;

然后按照您的路线选择。

var user = require('../userModel');

user.find({ _id: req.params._id }, (err, doc) => (
    if (!err && doc){
        res.render('add', { User: doc});
    }
))

如果您打算只获取一条记录,也可以考虑使用findOne而不是find。