为什么sails.js在启动时失败?

时间:2014-11-10 20:09:27

标签: mysql node.js mongodb sails.js waterline

尝试链接模型(一对一)后出现此错误:

Temporarily using `sails.config.models.migrate="safe"...
(press CTRL+C to cancel-- continuing lift automatically in 0.5 seconds...)

C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\core\schema.js:168
    attr.type = type.toLowerCase();
                     ^
TypeError: Cannot call method 'toLowerCase' of undefined
 at Schema.objectAttribute (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\core\schema.js:168:26)
 at C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\core\schema.js:58:29
 at Array.forEach (native)
 at Schema.initialize (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\core\schema.js:56:22)
 at Core._initialize (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\core\index.js:89:16)
 at module.exports (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\core\index.js:50:20)
 at module.exports (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\collection\index.js:44:8)
 at new child (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\utils\extend.js:17:39)
 at initialize (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline\collection\loader.js:37:10)
 at loadCollection (C:\Users\alex025\AppData\Roaming\npm\node_modules\sails\node_modules\waterline\lib\waterline.js:111:29)

之后,我找回了工作代码并试图运行它,但没有成功。我试图重新安装全局Sails,但这并没有改变这种情况。

OS: Windows 8.1
Sails.JS: v0.10.5 (fresh from npm)

用户模型:

module.exports = {
    connection: 'mysql',

    attributes: {
        id: {primaryKey: true},
        phone: {
            type: 'string',
            unique: true,
            required: true
        },
        role: {type: 'string'},
        name: {type: 'string'},
        city: {type: 'string'}
    }
};

驱动程序型号:

module.exports = {
    connection: 'mongo',

    attributes: {
        id: {primaryKey: true},
        user: {model: 'User'},
        rate: {
            type: 'decimal',
            required: true
        },
        cars: {
            dominant: true,
            collection: 'Car'
        }
    }
};

车型:

module.exports = {
    atributes: {
        number: {
            type: 'string',
            required: true
        },
        color: {
            type: 'string',
            required: true
        }
    }
};

2 个答案:

答案 0 :(得分:2)

正如我在这里看到的,问题不在于这个问题。

此问题在一年前关闭。 问题在于您的id属性。你没有为它设置类型。水线无法确定它。

尝试删除id属性。水线应该自动添加到你的所有模型(对于它做的mongo)。 如果不是,则必须将类型设置为id属性。

答案 1 :(得分:0)

不知道这是否已解决,但是存在导致该错误的问题:

https://github.com/balderdashy/sails/issues/1158

(但是它的日期是1年前)