6

Koa 2 アプリケーションがあり、/signup への投稿は次の関数によって処理されます。

import User from 'models/user';

export const signup = async (ctx, next) => {
  const { email, password } = ctx.request.body;
  try {
    const existingUser = await User.findOne({ email });

    if (existingUser) {
      ctx.body = { error: 'Email is in use' };
      return next();
    }

    const user = new User({
      email,
      password,
    });
    await user.save();
    ctx.body = { success: true };
  } catch (e) {
    next(e);
  }
  return next();
};

関数は正しいデータを受け取りますが、await User.findOne().exec();決して返されず、スタックします。

削除するとコードが正常に実行されるため、問題があると思います。私がPromiseに切り替えると...find().thenそれも機能します。(async をエミュレートするために) await fetch() に変更すると動作するため、async/await のいずれかが動作しています...しかし、ここに私のバベルの設定があります

{
  "presets" : ["latest", "stage-0"],
  "plugins": [
    ["module-resolver", {
      "root": ["./src"]
    }]
  ]
}

マングースはバージョン 4.7.0 です

4

2 に答える 2