Rails ActiveRecord迁移类似于Node / ExpressJs

时间:2017-09-26 12:31:45

标签: node.js express activerecord database-migration

我来自Ruby世界,开始学习Express js,Node / ExpressJs中是否存在Rails ActiveRecord Migrations类库?

4 个答案:

答案 0 :(得分:2)

我认为你可以使用Sequelize,它真正受到ActiveRecord的启发。也许您还需要使用Migrat包,它看起来像一个非常好的迁移工具

答案 1 :(得分:2)

通过Google快速搜索,我可以尝试使用四种不同的软件包/库:

答案 2 :(得分:2)

我认为你应该使用Sequelize,语法很简单,曲线学习很快。以下是如何在sequelize中定义模型的相同示例:

const User = sequelize.define('user', {
  username: { type: Sequelize.STRING, allowNull: false },
  password: { type: Sequelize.STRING, allowNull: false },
  admin: { type: Sequelize.BOOLEAN, defaultValue: false }
});

在您调用代码后,sync()方法Sequelize会CREATE TABLE IF NOT EXISTS所有模型添加id(您也可以更改),created_at和{{1} (时间戳)你可以这样打电话:

updated_at

您可以使用少量代码进行非常复杂的查询,并将它们与express.js混合以响应您的客户,例如:

sequelize.sync()
  .then(() => User.create({
    username: 'administrator',
    password: 'yahoo',
    admin: true
  }))
  .then(userCreated => {
    console.log(userCreated.toJSON());
  });

这会产生类似:User.findAll({ where: { [Op.iLike] : { username: 'Jack%' }, admin: true } }).then(usersList => { if (!usersList) { response.status(404).json({ error: 'not found' }); return null; } for (var i = 0; i < usersList.length; i++) { usersList[I].something = 42; } response.json(usersList); return null; }); ;

答案 3 :(得分:2)

我是Ruby on Rails开发人员,我在Node.js上搜索类似的框架。

现在我正在使用带有Waterline的Sails.js,使用PostgreSQL和迁移库。
文件结构与Rails几乎相同。与ActiveRecord几乎相同。我对目前的设置非常满意,工作完美且速度极快。

我有500个功能测试。每个测试都有很多查询,运行10-20次,有很多更新,创建,查找查询。使用Rails和PG数据库,它们将在10分钟内运行。使用Sails和PG数据库,他们确实在2分钟内运行(或更多 - 我有这个设置)。使用Sails和MongoDB(我刚从pg迁移到mongo),相同的测试在12秒内完成!

我仍然拥有类似Rails的文件系统和Waterline,它类似于ActiveRecord。我已经转移到Redis的所有交易(这很难,但完成了工作)。