проблема с коа, пн goose жду не возвращая ctx.body - PullRequest
0 голосов
/ 30 января 2020

Я использую koa для сброса пароля, желая использовать .save для запуска schema.pre ('save').

данные возвращались с помощью findOneAndUpdate, но не при использовании .save.

что такое комбинация волхвов c, чтобы это вернуть .save делает c правильно с await / asyncs?

r.post("/public/auth/resetpass", async (ctx, next) => {
  const values = ctx.request.body;
  const query = {
    email: values.email,
    resetPasswordToken: values.resetPasswordToken,
    resetPasswordExpires: {
      $gt: new Date(new Date())
    }
  };

  const update = {
    password: values.password,
    resetPasswordToken: null,
    resetPasswordExpires: null
  };

//  let userFound = null;

  await User.findOne(query,async function(err, user) {
    if (err) {
      console.log("*** err");
      next(err);
    } else {
      if (_.isEmpty(user)) {
        ctx.status = 200;
        ctx.body = {
          error: true,
          message: "token is incorrect or time has expired for password reset"
        };
      } else {
        user.password = values.password;
        await user.save(function(err, doc) {
          if (err) {
            console.log('***err saving');
            next(err);
          } else {
            //console.log fires, but ctx body doesn't return
            console.log ('***saved, writing poco');
            ctx.body = userToPoco(doc);
          }
        });
      }
    }
  });
});

1 Ответ

0 голосов
/ 31 января 2020

в конечном итоге перешли на обещание.

  await user.save().then (doc =>{
    ctx.body = doc;
  });
...