节点 Js 和猫鼬日期架构不起作用

时间:2021-04-11 23:24:42

标签: node.js mongodb express mongoose mongoose-schema

我创建了一个猫鼬模式并添加了一些模式类型

    const userSchema = new mongoose.Schema({
    name: {
        type: String,
        required: [true, 'Please tell us your name']
    },
    email: {
        type: String,
        required: true,
        unique: true,
        lowercase: true,
        validate: [validator.isEmail, 'please provide a email']
    },
    photo: String,
    password: {
        type: String,
        required: [true, 'Please provide a password'],
        minlength: 8,
        select: false
    },
    passwordConfirm: {
        type: String,
        required: [true, 'Please Confirm your password'],
        validate: {
            // This only works on CREATE AND SAVE!!!    
            validator: function(el) {
                return el === this.password
            },
            message: 'Passwords are not same'
        }
    },
    passwordChangedAt: Date
});

然后我将数据分配给模型

{
    "name" : "Abdullah",
    "email" : "abdullah@gmail.com",
    "password" : "pass1234",
    "passwordConfirm" : "pass1234",
    "passwordChangedAt" : "12-4-2021"
}

最后,“passwordChangedAt”属性没有显示在我的数据库中

2 个答案:

答案 0 :(得分:1)

"12-4-2021" 是一个字符串,而不是日期。

请参阅 MongoDB 文档中 Date 的说明。

Mongoose 将尝试将提供的值转换为日期类型。 请参阅 Mongoose 文档中的 Working with Dates 教程。

请注意,该教程中的每个字符串日期示例都使用“YYYY-MM-DD”格式。

答案 1 :(得分:0)

在创建新用户时,需要获取请求的字段;即,name: req.body.name; 同样,您需要获取请求的 passwordChangedAt: req.body.passwordChangedAt 字段。

相关问题