L oop для на KnexJS - PullRequest
       10

L oop для на KnexJS

0 голосов
/ 09 марта 2020

Я пытаюсь oop в запрос Knex. js, чтобы иметь sh пароли всех пользователей. Я написал это:

return knex.select().from('UTILISATEUR')
    .then(function(result) {
        for (let i=0; i < result.length; i++){
          pwdToHash = result[i].MOTPASS;
          const hashedPwd = bcrypt.hashSync(pwdToHash,salt);
                    return knex('UTILISATEUR')
                    .where({NOGENE: result[i].NOGENE})
                    .update(
                    {MOTPASS: hashedPwd},['NOGENE', 'MOTPASS']
                    );
        }
    });

Но он просто меняет первую строку, а затем выходит l oop, что-то не так?

Редактировать: я исправил покупку с помощью жду :

return knex.select().from('UTILISATEUR')
    .then(async function(result) {
        for (let i=0; i < result.length; i++){
          let pwdToHash = result[i].MOTPASS;
          const hashedPwd = bcrypt.hashSync(pwdToHash,salt);
          console.log(hashedPwd)
          await knex('UTILISATEUR')
            .where({NOGENE: result[i].NOGENE})
            .update(
              {MOTPASS: hashedPwd},['NOGENE', 'MOTPASS']
            );
        }
    });

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

чтобы не смешивать обещание и асинхронный / ожидающий синтаксис так много, и чтобы вернуть эти обновленные строки, это можно записать, например, так:

const result = await knex.select().from('UTILISATEUR');    
const ret = [];

for (const row of result) {
  let pwdToHash = row.MOTPASS;
  const hashedPwd = bcrypt.hashSync(pwdToHash,salt);
  console.log(hashedPwd)
  ret.push_back(await knex('UTILISATEUR')
    .where({NOGENE: row.NOGENE}).update({
      MOTPASS: hashedPwd
    }, ['NOGENE', 'MOTPASS']));
}

return ret;
0 голосов
/ 09 марта 2020

Вы делаете return в for l oop, поэтому после первой итерации он выйдет из l oop.

return knex.select().from('UTILISATEUR')
    .then(function(result) {
        for (let i=0; i < result.length; i++){
          pwdToHash = result[i].MOTPASS;
          const hashedPwd = bcrypt.hashSync(pwdToHash,salt);
          knex('UTILISATEUR')
            .where({NOGENE: result[i].NOGENE})
            .update(
              {MOTPASS: hashedPwd},['NOGENE', 'MOTPASS']
            );
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...