node.js - Mongoose 模式 setter 覆盖函数未被调用

标签 node.js mongodb express mongoose

我试图覆盖 mongoose 模型的 setter,因为我想创建自己的 Date 对象,但是检查 documentation我做了以下操作,但 setter 仍然没有被调用:

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);

出了什么问题?我正在使用 Mongoose 4.0.5

最佳答案

问题是您的 strToDate 函数中有一个拼写错误,导致该函数抛出 ReferenceError 异常(Mongoose 显然只是吃掉了该异常)。 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/

相关文章:

javascript - nodejs express在另一个文件中重用路由get方法

javascript - 将 http 请求保存在变量中

java - HBase 不存储所有记录

java - Filters.geoIntersects 从 Java 应用程序不返回任何内容,而 Robo 3T 的查询返回一些

javascript - 无法向 Mongoose 查询返回的对象添加新属性

javascript - 通过 Express.js 中的 API 上传文件 : Notification after file upload

node.js - Discord 机器人无法通过 ID 获取用户集合

javascript - 将 sinon 模拟与 nodeunit 一起使用

node.js - 使用 webpack 在 Node 服务器上渲染 React 组件

json - 合并 mongodb 上的两个集合