如何使用sails-postgresql水线ORM将记录插入数据库

时间:2014-10-27 20:32:59

标签: postgresql sails.js waterline

我在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){});

1 个答案:

答案 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),会发生此错误。

希望这有帮助。