我正在使用MEAN堆栈对Web应用程序进行编码。 我需要将猫鼬提供的日期保存到node.js中的记录中,但是似乎没有考虑保存的字符串的格式。
当我创建一条新记录(命名为Actualite)时,.save()方法将调用moment()来格式化由console.log(“ pubDateàsauvegarder vaut:”,pubDate)正确打印的pubDate。
但是,似乎该日期格式未保存在数据中,如console.log(“ dataàsauvegarder vaut:\ n”,data)所示;
// Here is the model of actualite defined in node.js:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const ActualiteSchema = Schema({
// Actualité
title: String,
description: String,
// Image
idImage: { type: Schema.Types.ObjectId, ref: 'Images' },
}, {
timestamps: { createdAt: false, updatedAt: 'pubDate' },
versionKey: false
});
module.exports = mongoose.model('Actualites', ActualiteSchema);
// Here is the code used to create a new actualite
exports.create = (req, res) => {
// Requête de validation
if (!req.body) {
return res.status(400).send({
message: "Le contenu d'une actualité ne peut pas être vide !"
});
}
// Créer une actualité
var actualite = new Actualite({
// Actualité
title: req.body.title,
description: req.body.description,
// Image
idImage: req.body.idImage,
pubDate: req.body.pubDate,
});
// Sauvegarder un produit dans la base de données
actualite.save()
.then(data => {
pubDate = moment(actualite.pubDate, 'YYYY-MM-DDTHH:mm:ss.SSSZ').format('ddd, D MMMM YYYY HH:mm:ss ZZ');
console.log("pubDate à sauvegarder vaut :", pubDate);
console.log("data à sauvegarder vaut :\n", data);
console.log("");
res.send(data);
}).catch(err => {
res.status(500).send({
message: err.message || "Erreur lors de la création de l'actualité"
});
});
};
// This is the output generated by console.log():
pubDate à sauvegarder vaut : dim., 7 juillet 2019 19:55:52 +0200
data à sauvegarder vaut :
{ _id: 5d223228d8eb9525807e48cb,
title: 'Test StackOverflow',
description: 'this is a test',
idImage: null,
pubDate: 2019-07-07T17:55:52.532Z }
我希望数据中的pubDate为“ dim。,7 juillet 2019 19:55:52 +0200”,而不是“ 2019-07-07T17:55:52.532Z”
答案 0 :(得分:0)
MongoDB将日期存储在UTC中,这是一种表示时间的通用方式。如果希望显示其他格式,则可以使用moment.format
(如已使用)或MongoDB聚合$dateToString
。
您将无法更改日期存储方式的基本表示形式。