我在sails-postgresql适配器中使用sails js
尝试将记录插入数据库时收到以下错误。
error: Sending 500 ("Server Error") response:
TypeError: Object.keys called on non-object
at Function.keys (native)
at __CREATE__ (/home/user123/aoresources/node_modules/sails-postgresql/lib/adapter.js:337:16)
配置/ models.js:
module.exports.models = {
autoCreatedAt: false,
autoUpdatedAt: false,
connection: 'postgresql',
migrate: 'safe',
autoPK: false
};
表:
create table if not exists users (
id varchar(50) not null primary key,
email varchar(254) not null
);
user.js的:
module.exports = {
attributes: {
email: {
type: 'string'
},
id: {
type: 'string',
primaryKey: true
}
}
}
插入代码:
User.create({id: 'test', email:'something'}).exec(function createCB(err,created){});
答案 0 :(得分:0)
在您的模型User.js
中,添加以下行:
tableName: "users"
。
因此,您的User.js
将如下所示:
module.exports = {
tableName: "users",
attributes: {
email: {
type: 'string'
},
id: {
type: 'string',
primaryKey: true
}
}
}
如果您未提供tableName
属性,Waterline
会自动将Model's
标识作为表名称(User
),但由于您没有名为User
的表(但users
),会发生此错误。
希望这有帮助。