2015-06-24 3 views
0

Я пытаюсь переписать сеттер мангустов модели, потому что я хочу, чтобы создать свой собственный объект 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

ответ

0

Проблема заключается в том, что у вас есть опечатка в вашей strToDate функции, которая вызывает функцию, чтобы бросить ReferenceError исключение (которое, по-видимому, просто ест). dataStr[5] должно быть dateStr[5].

Так просто измените последнюю строку этой функции:

return new Date(dateStr[0],dateStr[1],dateStr[2],dateStr[3],dateStr[4],dateStr[5]); 
0

Я попробовал этот пример с мангуста 4.0.6

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

var InfoSchema = new Schema({ 
    dataTime: {type: Date, require: true, set: strToDate} 
}); 

function strToDate(stringDate) { 
    var sDate = stringDate.split('/'); 
    return new Date(sDate[0], sDate[1], sDate[2], sDate[3], sDate[4], sDate[5]); 
} 

var Info = mongoose.model('Info', InfoSchema); 

var info = new Info(); 
info.dataTime = '1995/11/17/3/24/0'; 
console.log(info.dataTime); //Sun Dec 17 1995 03:24:00 GMT-0400 (BOT) 
Смежные вопросы