Sails-mongo很多很多协会都没有工作

时间:2015-02-06 07:39:01

标签: node.js sails.js waterline sails-mongo

我使用风帆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

2 个答案:

答案 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没有为您提供此最新版本,您可以通过执行以下操作手动修复它:

  1. 导航至joinTables.js(注意:这可能位于您的全球风帆目录中)
  2. $this->Bookmarks->Users->get(... // if they're associated models 替换为https://github.com/balderdashy/waterline-schema/blob/8f5a44d076ca36edea409bf41ac2cdbf760c2c59/lib/waterline-schema/joinTables.js
  3. 我知道这并没有完全回答你的问题是什么问题,但希望它会给其他人带来错误的工具来更快地解决它。

相关问题