有没有办法在我检索它们之后格式化存储在mongoDB中的日期对象?
我尝试(已更新)
tests.find({}, {roomId: 1, teacher: 1, created: 1}, function(err, result) {
if (err) {console.log(err);}
result = result.map(function (doc) {
console.dir(typeof doc.created);
console.dir(doc.created);
doc.created = doc.created.format("MM.DD.YYYY");
return doc;
});
res.render('showTests', {tests: result});
});
但cannot read property 'format' of undefined
(这很奇怪,因为在玉中
each test in tests
p.col-md-3 #{test.roomId}
p.col-md-3 #{test.teacher}
p.col-md-3 #{test.created}
正确打印日期"" (作为一英里长的字符串)。)
我也尝试直接在玉器中添加格式,但这也不起作用。
我必须存储已经格式化的吗?那不是唯一的解决方案吗?
控制台输出(已更新)
'object'
Tue Feb 02 2016 20:58:36 GMT+0100 (Mitteleuropäische Zeit)
f:\Dropbox\Projects\calc\routes\test.js:47
doc.created = doc.created.format("MM.DD.YYYY");
^
TypeError: doc.created.format is not a function
如果我注释掉.format()行,它会工作并在模板中显示日期
这里是我如何生成日期(更新):
var testResults = {
addRoom: function(Id, teacher) { // room pseudoconstructor
this[Id] = {
Id: Id,
teacher: teacher,
created: moment(),
// ...
}
}
// ...
var created = testResults[room].created;
var students = testResults[room].students;
var problems = testResults[room].testProblems;
// save to DB
var test = new tests({
roomId : room,
created : created,
teacher : name,
students : students,
problems : problems
});
test.save(function(err, result) {
if (err) {console.log(err);}
else {
console.log('test saved to DB');
socket.emit('testSaved');
}
});
https://coderwall.com/p/egh53a/making-use-of-utility-libraries-in-server-side-jade-templates
答案 0 :(得分:-1)
您正在尝试格式化文档集合。 您必须循环搜索结果,然后在将每个文档传递给模板之前对其进行格式化。
e.g。
var moment = require('moment');
result = result.map(function (doc) {
doc.created = moment(doc.created).format("DD.MM. h:mm");
return doc;
});