我有一个使用较旧版本mongoose.js的应用程序,我一直在将其升级到2.9.x(此更新成功后升级到3.x) 。它似乎(大多数)工作正常,直到我尝试设置模式类型为Mixed
的任何东西。当我这样做时,错误地说TypeError: Cannot read property 'name' of undefined
。
这是我的架构:
mongoose = require 'mongoose'
Schema = mongoose.Schema
Mixed = Schema.Types.Mixed
LogItemSchema = new Schema({
action: String
, user: String
, comment: String
, time: Date
, modal: Mixed
})
module.exports = LogItem = mongoose.model('LogItem', LogItemSchema)
我可以创建一个新的LogItem,直到我尝试设置modal
属性(通常使用半复杂对象,即。{type: 'string', companies: ['company1', 'company2']}
),它会出错。
如果我没有设置模态,则没有错误。知道为什么会这样吗?
答案 0 :(得分:0)
故事的道德:不要使用Mixed
类型。
但严重的是,我从未弄清楚这个特殊问题是什么。我最后只是更新到最新版本的Mongoose并处理了它们出现的错误(主要是API更改)。
之前更改了日志,不包含任何Mixed
数据。