【问题标题】:Get timestamps of a newly created mongo document in mongoose (MERN)在 mongoose (MERN) 中获取新创建的 mongo 文档的时间戳
【发布时间】:2021-02-02 08:46:58
【问题描述】:

我正在开发 Twitter 克隆以学习 MERN 堆栈,这是一条新的推文路线

router.route('/new')
    .post( (req, res) => {

        const { errors, isValid } = validateTweet(req.body);
        
        if (!isValid) {
            return res.status(400).json(errors);
        }
        let tweet = new Tweet({
            content: req.body.content,
            created_by: req.user.id
        })
        User.findById(req.user.id, (err, user) => {
            if (err) return res.status(400).json(err)
            
            user.tweets.push(tweet._id);
            user.save();
        });
        tweet.save();

        return res.status(201).json(tweet);
    });

哪个不返回推文的时间戳,我如何在返回推文之前不查询数据库的情况下实现这一点? 这是模型以防万一:

const tweetSchema = new Schema({
    content: {
        type: String,
        required: true,
        minlength: 1,
        maxlength: 128,
        trim: true
    },
    created_by: {
        type: Schema.Types.ObjectId, ref: 'User',
        required: true
    }
}, {
    timestamps: true
});

const Tweet = mongoose.model('Tweet', tweetSchema);

【问题讨论】:

  • 为什么不能在插入的时候直接使用new Date()
  • 会和mongodb时间格式一样吗?不确定这是否可行
  • 这不只是格式问题吗?您在寻找什么格式的时间戳?国际标准化组织? Date 为您提供,请参阅文档。

标签: node.js mongodb api express mongoose


【解决方案1】:

我最终做的是创建函数async,然后返回已完成的save() 的结果。不确定这是否是一个好习惯。

router.route('/new')
    .post( async (req, res) => {

        const { errors, isValid } = validateTweet(req.body);
        
        if (!isValid) {
            return res.status(400).json(errors);
        }
        let tweet = new Tweet({
            content: req.body.content,
            created_by: req.user.id
        })
        User.findById(req.user.id, (err, user) => {
            if (err) return res.status(400).json(err)
            
            user.tweets.push(tweet._id);
            user.save();
        });
        tweet = await tweet.save();

        return res.status(201).json(tweet);
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-05
    • 2016-08-04
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 2017-09-24
    • 2020-11-18
    • 2015-10-13
    相关资源
    最近更新 更多