我有一个使用旧版本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']}),它将会出错。
如果我不设置modal,就不会有错误。你知道为什么会这样吗?
发布于 2014-04-22 04:28:15
这个故事的寓意是:不要使用Mixed类型。
但说真的,我从来没有弄清楚这个特殊的问题是什么。我最终只是更新到了Mongoose的最新版本,并在出现错误时进行了处理(主要是API更改)。
在此之前,日志已更改为不包含任何Mixed数据。
https://stackoverflow.com/questions/17284086
复制相似问题