Node.js Rails ActiveRecord迁移在Node/ExpressJs中类似

Node.js Rails ActiveRecord迁移在Node/ExpressJs中类似,node.js,express,activerecord,database-migration,Node.js,Express,Activerecord,Database Migration,我来自Ruby world,开始学习Express js,Node/ExpressJs中是否有Rails ActiveRecord Migrations之类的库?我认为您可以使用Sequelize,它真正受到了ActiveRecord的启发。也许你也需要使用软件包Migrat,它看起来是一个非常好的迁移工具,我在谷歌上快速搜索了四个不同的软件包/库,你可以试试: 我认为您应该使用,语法非常简单,曲线学习速度很快。以下是如何在sequelize中定义模型的相同示例: const User

我来自Ruby world,开始学习Express js,Node/ExpressJs中是否有Rails ActiveRecord Migrations之类的库?

我认为您可以使用Sequelize,它真正受到了ActiveRecord的启发。也许你也需要使用软件包Migrat,它看起来是一个非常好的迁移工具,我在谷歌上快速搜索了四个不同的软件包/库,你可以试试:

    • 我认为您应该使用,语法非常简单,曲线学习速度很快。以下是如何在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将
      创建表(如果不存在)
      所有模型添加
      id
      (您也可以更改),
      创建和
      更新(时间戳),您可以这样调用:

      sequelize.sync()
        .then(() => User.create({
          username: 'administrator',
          password: 'yahoo',
          admin: true
        }))
        .then(userCreated => {
          console.log(userCreated.toJSON());
        });
      
      您可以使用少量代码进行非常复杂的查询,并将其与express.js混合,以响应您的客户端,例如:

      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;
       });
      
      User.findAll({
      其中:{
      [Op.iLike]:{username:'Jack%'},
      管理员:是的
      }
      })。然后(usersList=>{
      如果(!usersList){
      json({error:'notfound'});
      返回null;
      }
      for(var i=0;i

      这将产生如下结果:
      选择“id”、“username”、“password”、“admin”、“created_at”、“updated_at”,其中“admin”=true,“username”类似于“Jack%”

      我是RubyonRails开发人员,我在Node.js上搜索类似的框架

      现在,我将Sails.js与Waterline一起使用,使用PostgreSQL与迁移库一起使用
      文件结构与Rails中的几乎相同。与ActiveRecord几乎相同。我很高兴我目前的设置,工作完美,燃烧迅速

      我有500个功能测试。每个测试都有许多查询,通过10-20个类别运行,其中包含许多更新、创建和查找查询。使用Rails和PG数据库,它们将在10分钟内运行。有了Sails和PG数据库,它们在2分钟内就运行了(或者更多——我有这个设置)。使用Sails和MongoDB(我刚刚从pg迁移到mongo),同样的测试只需12秒钟

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