好的,我有节点作为后端,它有以下Mongoose模型:
var SomeSchema = new Schema({
name: {type: String, required: true},
iplanned: {type: String, default:60}
});
SomeSchema.virtual('planned')
.get(function () {
return parseInt(this.iplanned / 60, 10) + ' mins';
})
.set(function (val) {
this.iplanned = parseInt(val, 10) * 60;
});
someModel = mongoose.model('Some', SomeSchema);
到目前为止,很好,从node.js方面我可以处理记录并按照我喜欢的方式访问这个planned
字段。
以下是通过http:
提供此列表的简单响应者exports.list = function (req, res) {
someModel.find(function (err, deeds) {
return res.send(deeds);
});
});
这就是问题所在 - 虚拟字段planned
未包含在每条记录中(嗯,这是可以理解的)。有没有办法以某种方式为每条记录注入我的虚拟字段?或者我也必须在前端进行virtual
转换? (是的,我知道那里有Meteor.js,试着在这里没有它。)
答案 0 :(得分:1)
在您的架构中,您应该重新定义 toJSON()方法:
SomeSchema.methods.toJSON = function () {
var obj = this.toObject();
obj.planned = this.planned;
return obj;
};