在我的模型上,我将dateOrdered
对象默认为Date.now()
dateOrdered: { type: Date, default: Date.now() }
我想在解析请求之前使用moment.js格式化此dateOrdered
。请看一下。
ordersRouter.route('/getorders')
.get(function (req, res) {
Orders.find()
.populate({ path: 'userPurchased products.product', select: '-username -password' })
.exec(function (err, orders) {
var fromNow = moment(orders.dateOrdered).fromNow();
var cleanDate = moment(orders.dateOrdered).format('MMM Do YYYY');
orders.dateOrdered = cleanDate;
res.json(orders);
});
});
我如何格式化以使其成为可理解的格式?这就是现在的样子。
答案 0 :(得分:0)
moment(orders.dateOrdered).format('MMM Do YYYY')
返回一个字符串,而不是Date。当您分配字符串时,Mongoose Schema会将字符串强制转换回正确的Date对象,然后将Date序列化为默认格式的时间戳。因此,渲染输出中的丑陋日期字符串。
尝试:
orders = JSON.parse(JSON.stringify(orders));
orders.dateOrdered = cleanDate;
res.json(orders);
这里我们已经从Schema转换为vanilla类型以避免转换。