11

わかりました、私はマングースが初めてで、仮想プロパティの使用方法を理解しようとしています。これは私がテストしたサンプルコードです。

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var objSchema = new Schema({
  created: {type: Number, default: Date.now()},
});

objSchema.virtual('hour').get(()=>{
  //console.log(this);
  var d = new Date(this.created);
  return d.getHours();
});

var obj = mongoose.model('obj', objSchema);

var o = new obj();
o.toObject({virtuals: true});
console.log(o.created);
console.log(o.hour);

だから私はログが次のようなものになることを期待しています:

1457087841956
2

しかし、出力は

1457087841956
NaN

そして、仮想ゲッターの先頭で「this」をログに記録すると、{} が出力されます。私は何を間違っていますか?

4

1 に答える 1