我试图覆盖猫鼬模型的设置器,因为我想创建自己的Date对象,但是检查了documentation并做了以下操作,但该设置器仍未调用:
var mongoose = require('mongoose');
function strToDate(dateStr){
var dateStr = dateStr.split('/');
console.log('parsed a date!');
return new Date(dateStr[0],dateStr[1],dateStr[2],dateStr[3],dateStr[4], dataStr[5]);
}
var infoSchema = new mongoose.Schema({
code: {type : String, require: true},
valve: {type : Number, require: true},
dataTime: {type: Date, require: true, set: strToDate},
status: {type: Boolean, require: true, default: false },
elapsedTime: 0
});
var dataLogSchema = new mongoose.Schema({
boardId: {type: String, require: true, unique: true},
logInfo:[infoSchema]
});
module.exports = mongoose.model('DataLog', dataLogSchema);
怎么了?我正在使用猫鼬4.0.5
最佳答案
问题是您的strToDate
函数中有一个错字,导致该函数引发ReferenceError
异常(猫鼬显然只是在吃东西)。 dataStr[5]
应该改为dateStr[5]
。
因此,只需将该函数的最后一行更改为:
return new Date(dateStr[0],dateStr[1],dateStr[2],dateStr[3],dateStr[4],dateStr[5]);
关于node.js - Mongoose 模式 setter 覆盖函数未调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31038353/