gpt4 book ai didi

node.js - 如何在 SailsJs 中使用 Sequelize

转载 作者:IT老高 更新时间:2023-10-28 23:16:03 50 4
gpt4 key购买 nike

Waterline 是一个出色的 ORM,但我注意到有许多功能尚未出现在 Waterline 上,但 Sequelize 已经具备。所以我决定切换到 Sequelize ,但仍然使用 Sails 来处理其他事情。我有搜索教程如何切换到 Sequelize 但没有。如何在 Sails Js 中替换 Waterline 以进行 Sequelize ?

最佳答案

我也在推进sequelize,最近有两个项目真的出来了,所以我想宣布它们。

sails-hook-sequelize:

它遵循 Manuel Darveau 的回答,它将获取您的所有模型,通过 sequelize 导入并将您的模型作为全局变量提供,您可以使用与 migrate: 'drop'< 相同的方式强制 sequelize 同步

sails-hook-sequelize-blueprints

Sails 蓝图为我节省了大量时间,因此我编写了一个用于 sequelize 的 fork,它的工作方式与原始蓝图相同,并且您仍将拥有相同的蓝图配置,例如 rest shortcutsprefix 等,由于 waterline 使用 populateEach() 函数填充模型,它使用 include: [{ all: true }] 结果是一样的。

一个完整的例子:

$ npm install sails-hook-sequelize
$ npm install sails-hook-sequelize-blueprints
$ npm install sequelize
$ npm install pg pg-hstore
$ npm install continuation-local-storage

.sailsrc

"hooks": {
"blueprints": false,
"orm": false,
"pubsub": false
}

connections.js

somePostgresqlServer: {
user: 'postgres',
password: '',
database: 'database',
dialect: 'postgres',
options: {
dialect: 'postgres',
host : 'localhost',
port : 5432,
logging: true
}
}

你的模型定义

// user.js
module.exports = {
attributes: {
name: {
type: Sequelize.STRING,
allowNull: false
},
age: {
type: Sequelize.INTEGER
}
},
associations: function() {
user.hasMany(image, {
foreignKey: {
name: 'owner',
allowNull: false
}
});
},
options: {
tableName: 'user',
classMethods: {},
instanceMethods: {},
hooks: {}
}
};

就是这样。

关于node.js - 如何在 SailsJs 中使用 Sequelize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30792913/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com