javascript - (moment.js) format dates retrieved from mongo -


is there way format date objects stored in mongodb after retrieve them?

i tried (updated)

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});         }); 

but cannot read property 'format' of undefined (which odd, because in jade

each test in tests     p.col-md-3 #{test.roomid}     p.col-md-3 #{test.teacher}     p.col-md-3 #{test.created} 

prints date "correctly" (as mile-long string).)

i tried add format directly in jade, didn't work either.

do have store formatted? can't solution?

console output (updated)

'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 not function 

if comment out .format() line, works , shows date in template

here's how generate date (update):

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 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 db');                     socket.emit('testsaved');                 }             }); 

answer:

https://coderwall.com/p/egh53a/making-use-of-utility-libraries-in-server-side-jade-templates

you trying format collection of documents. have loop on results , every document format date before passing template.

e.g.

var moment = require('moment'); result = result.map(function (doc) {     doc.created = moment(doc.created).format("dd.mm. h:mm");     return doc; }); 

Comments

Popular posts from this blog

Delphi XE2 Indy10 udp client-server interchange using SendBuffer-ReceiveBuffer -

Qt ActiveX WMI QAxBase::dynamicCallHelper: ItemIndex(int): No such property in -

jsf - disable onscroll event of the icefaces datatable -