2017-02-08 4 views
0

Auf meinem Modell zu lösen, ich das dateOrdered Objekt als Date.now Standard()Wie Datumsformat zu ändern, bevor GET-Anfrage

dateOrdered: { type: Date, default: Date.now() } 

ich diesen dateOrdered mit moment.js formatiert werden soll, bevor die Anforderung zu lösen. Bitte schau es dir an.

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

Wie kann ich dies formatieren, um es in einem verständlichen Format zu machen? So sieht es jetzt aus.

enter image description here

Antwort

0

moment(orders.dateOrdered).format('MMM Do YYYY') liefert einen String, kein Datum. Das Mongoose-Schema wandelt die Zeichenfolge zurück in ein ordnungsgemäßes Date-Objekt, wenn Sie es zuweisen, und dieses Datum wird dann als Standardformat-Zeitstempel serialisiert. Daher die hässliche Datumszeichenkette in der gerenderten Ausgabe.

Versuchen:

orders = JSON.parse(JSON.stringify(orders)); 
orders.dateOrdered = cleanDate; 
res.json(orders); 

Hier haben wir von Schema zu Vanille-Typen umgewandelt, um das Gießen zu vermeiden.