猫鼬为什么更改日期属性的值?

时间:2019-03-25 14:11:01

标签: javascript node.js mongoose mongoose-schema

我有一个具有日期属性的Model,我从发布请求中获取了它的值。我至少有两个问题:

  1. 猫鼬接受此输入作为日期:19124-012-030
  2. 当我仅发送年份时,猫鼬会填充月份和日期并更改年份值。

我还没有尝试过任何东西,我的架构中没有任何验证,我仅依靠类型(type: Date

架构

const mySchema = mongoose.Schema({
    ...
    date: {
     type: Date
    },
});

表格

<input id="dat" type="text" name="date" placeholder="date (yyyy-mm-dd)">

路由处理程序

app.post("/api/exercise/add", function(req, res, next) {
    User
     .findById(req.body.userId)
     .exec()
     .then(function(user) {
       return Promise.all([user, new Exercise({
         description: req.body.description,
         duration: req.body.duration,
         date: req.body.date, //BUG: must add validations
         user: user
       }).save()]);
     })
     .then(function([user, exercise]) {
        user.exercises.push(exercise);
        return user.save();
     })
     .then(user => res.json({ status: 201, exercises: user.exercises }))
     .catch(err => next(err))
     });

(1)19124-012-030的预期输出是引发错误,而是使用19124-12-29T23:00:00.000+00:00保留对象 (2)当输入仅为11111时,对象将保留为:11110-12-31T23:00:00.000+00:00

更新 问题已经解决了。我还没有找到类似的东西。 MongoDB的文档中没有任何内容可以帮助您理解问题。

0 个答案:

没有答案