Node.js 获取mongoose(MERN)中新创建的mongo文档的时间戳
我正在做一个twitter克隆来学习MERN stack,这里有一个新的推文路线Node.js 获取mongoose(MERN)中新创建的mongo文档的时间戳,node.js,mongodb,api,express,mongoose,Node.js,Mongodb,Api,Express,Mongoose,我正在做一个twitter克隆来学习MERN stack,这里有一个新的推文路线 router.route('/new') .post( (req, res) => { const { errors, isValid } = validateTweet(req.body); if (!isValid) { return res.status(400).json(errors); }
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);
});
它不会返回tweet的时间戳,在返回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);
我最后做的是使函数
异步
,然后返回完成的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);
});
为什么不能在插入时使用
new Date()
?它的格式是否与mongodb时间格式相同?不确定这是否有效这不只是一个格式问题吗?你想要什么格式的时间戳?ISO<代码>日期为您提供该信息,请参见文档。