Добре, имам възел като backend, има следния модел 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;
};