尝试链接模型(一对一)后出现此错误:
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
}
}
};
答案 0 :(得分:2)
正如我在这里看到的,问题不在于这个问题。
此问题在一年前关闭。
问题在于您的id
属性。你没有为它设置类型。水线无法确定它。
尝试删除id属性。水线应该自动添加到你的所有模型(对于它做的mongo)。 如果不是,则必须将类型设置为id属性。
答案 1 :(得分:0)