【问题标题】:Migration update table with hash password带有哈希密码的迁移更新表
【发布时间】:2021-03-15 00:13:17
【问题描述】:

我需要在迁移中将字符串密码转换为哈希我使用此代码,但选择后事务完成

    const users = await queryRunner.query('SELECT * FROM app_user;');
    users.map(async user => {
      user.password = await bcrypt.hash(user.password, 10);
      await queryRunner.query(
        `UPDATE app_user SET passsword = '${user.password}' WHERE id = ${user.id}`,
      );
    });
  }```

【问题讨论】:

    标签: node.js typescript database-migration typeorm


    【解决方案1】:

    也许不是最好的解决方案,但我希望它能奏效

    const users = await queryRunner.manager.createQueryBuilder().from('app_user', 'app_user').execute();
    if (users.length > 0) {
      const passwords = await Promise.all(users.map(user => bcrypt.hash(user.password, 10)));
    
      users.forEach((user, idx) => {
        queryRunner.manager
          .createQueryBuilder()
          .update('app_user')
          .set({ password: passwords[idx]})
          .where('id = :id', { id: user.id })
          .execute();
      })
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-22
      • 2018-10-29
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      • 1970-01-01
      • 2013-04-13
      相关资源
      最近更新 更多