我创建了一个返回一些JSON的MEAN应用程序,我想在显示之前创建一个简单的函数来更改JSON中的日期字段 - 但是如果我制作一个副本,我只能这样做将数据转换为新变量。有人可以解释为什么会这样吗?我认为一直熟悉javascript直到这个!!这与范围或mongoDB有关吗?
我的路线:
JobsImportCtrl = require('../controllers/jobsImportCtrl');
module.exports = function (app) {
app.get('/api/jobs', function (req, res) {
Jobsctrl.getJobs(res);
});

我的控制器:
var Jobspretty = require('../helpers/jobspretty'); // pretty job dates etc
module.exports = {
// get all jobs
getJobs: function(res) {
Job.find(function (err, jobs){
// if there is an error retrieving, send the error. nothing after res.send(err) will execute
if (err) {
res.send(err);
}
res.json(Jobspretty.deadlineDates(jobs));
});
},

我的助手功能:
var moment = require('moment'); // momentjs library
moment().format();
// human readable deadline dates using momentjs
module.exports = {
deadlineDates: function(jobs) {
var prettyjobs = [];
jobs.forEach(function(job) {
var obj2 = JSON.parse(JSON.stringify(job));
obj2.deadline = moment(job.deadline).format("dddd, MMMM Do YYYY");
prettyjobs.push(obj2);
});
return prettyjobs;
}
};