如何在 SailsJs 中使用 Sequelize



Waterline是一个很好的ORM,但我注意到有许多功能在waterline上尚不存在,但Sequelize已经有了。所以我决定切换到续集,但仍然使用 Sails 做其他事情。我有搜索教程如何切换到续集,但什么都没有。如何在帆 Js 中替换水线的续集?

我也推进了续集,最近有两个项目出来了,所以我想宣布它们。

帆钩续集:

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

帆钩续集蓝图

Sails 蓝图为我节省了很多时间,所以我写了一个分支来处理续集,它的工作方式与原始蓝图相同,并且您仍然具有相同的蓝图配置,例如 restshortcutsprefix 等,因为水线使用 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
}

连接.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: {}
  }
};

就是这样。

相关内容

  • 没有找到相关文章

最新更新