【发布时间】:2018-08-12 03:16:07
【问题描述】:
我正在做一个带有车把的 MEAN 项目。我最初只是直接使用来自我的数据库查询的数据并将其推送到我的车把视图。我不得不停止这种情况,因为我想做一些数据转换,我还听说这是更好的安全做法,因为它会删除您可能不打算传递的数据。
无论如何,我无法为嵌套数据集正确映射。
我的架构在下面;
var approverSchema = mongoose.Schema({
name: String,
status: String,
comment: String,
date: Date
});
var taskSchema = mongoose.Schema({
name: String,
description: String,
owner: String,
businessUnit: String,
status: String, // draft, pending, approved, rejected
approvalDue: Date,
submitted: Date,
approved: Date,
approvers: [approverSchema]
});
我的代码是;
'use strict';
var Task = require('../models/task.js');
exports.home = function (req, res, next) {
/* get tasks
------------------------------------------------------------------ */
Task.find({
owner: signedOnUser
}, function (err, result) { //callback function
if (err) {
return console.log(err);
}
var taskContext = {
tasks: result.map(function(result){
return {
name: result.name,
businessUnit: result.businessUnit,
status: result.status,
approvalDue: result.getDisplayDate(),
//approvers: result.approvers
approvers: result.approvers.map(function(result){
return {
name: result.approvers.name
};
})
};
})
};
res.render('home', {
taskContext: taskContext,
});
});
};
我很确定我的问题出在function(result),我正在传递嵌套地图,但我似乎无法正确处理。
【问题讨论】:
-
你不是返回一个对象吗?
result.getDisplayDate()是如何工作的?你的map函数应该返回({name:result.name}) -
为了清楚起见,我只是添加了完整的代码。谢谢大家
-
result.getDisplayDate()仍应为undefined,除非以某种方式定义 -
嗨 Pavlo,谢谢,这不是问题所在。我已将 getDisplayDate 定义为我的架构中的一种方法。
标签: javascript node.js mongoose mean-stack