我使用风帆0.10.5,我有两个模型,如下所示,有很多种关系。但是我在解除app时遇到了错误。
模型1)Category.js
attributes: {
name: {
type: 'string',
required: true
},
features: {
type: 'array'
},
desc: {
type: 'string'
},
sub_cats: {
collection: 'SubCategory',
via: 'cats',
dominant: true
}
}
模型2)SubCategory.js
attributes: {
cats: {
collection: 'Category',
via: 'sub_cats'
},
name: {
type: 'string',
required: true
},
features: {
type: 'array'
},
desc: {
type: 'string'
}
}
现在在提升风帆应用程序时,此错误始终会触发
"C:\Program Files (x86)\JetBrains\PhpStorm 8.0.2\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" app.js
c:\wamp\www\holymantra\hm\node_modules\sails\node_modules\waterline\node_modules\waterline-schema\lib\waterline-schema\utils.js:47
return hop.call(obj, prop);
^
TypeError: Cannot convert null to object
at hasOwnProperty (native)
at exports.object.hasOwnProperty (c:\wamp\www\holymantra\hm\node_modules\sails\node_modules\waterline\node_modules\waterline-schema\lib\waterline-schema\utils.js:47:14)
at JoinTables.parseAttribute (c:\wamp\www\holymantra\hm\node_modules\sails\node_modules\waterline\node_modules\waterline-schema\lib\waterline-schema\joinTables.js:148:26)
at c:\wamp\www\holymantra\hm\node_modules\sails\node_modules\waterline\node_modules\waterline-schema\lib\waterline-schema\joinTables.js:83:22
at Array.forEach (native)
所以我感到很困惑(我的代码错了,或者在sails-mongo很多关系中存在一些问题)
- ND
答案 0 :(得分:1)
这只是SubCategory.js
中的拼写错误:它应该是attributes
而不是attribute
。
答案 1 :(得分:1)
希望您现在已经解决了问题!对于像我这样遇到此错误的其他人,node_modules/sails/node_modules/waterline/node_modules/waterline-schema/lib/waterline-schema
刚刚在https://github.com/balderdashy/waterline-schema/issues/17发布了一条更有用的错误消息,可以帮助您找出问题所在。因为截至今天(2015-04-28)npm install没有为您提供此最新版本,您可以通过执行以下操作手动修复它:
joinTables.js
(注意:这可能位于您的全球风帆目录中)$this->Bookmarks->Users->get(... // if they're associated models
替换为https://github.com/balderdashy/waterline-schema/blob/8f5a44d076ca36edea409bf41ac2cdbf760c2c59/lib/waterline-schema/joinTables.js 我知道这并没有完全回答你的问题是什么问题,但希望它会给其他人带来错误的工具来更快地解决它。