簡體   English   中英

貓鼬-持久的“虛擬”領域?

[英]Mongoose - persistent `virtual` field?

好的,我有節點作為后端,它具有以下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,在這里嘗試不使用它)。

在您的模式中,您應該重新定義toJSON()方法:

SomeSchema.methods.toJSON = function () {
   var obj = this.toObject();
   obj.planned = this.planned;
   return obj;
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM