ExpressJS POST Route未处理的承诺拒绝

时间:2018-04-20 20:31:17

标签: javascript node.js express

我有一个Express应用程序,它有以下POST路由:

//Main API route
  app.post("/api/v1/forms/:formId", async (req, res) => {
    //TODO: Create Mailer and email templates before finalising route.
    const { _name, _email, _message } = req.body;

    let newForm;

    Form.findById(req.params.formId, err => {
      if (err) {
        res.send(err);
      } else {
        const newForm = new Form({
          name,
          email,
          message,
          recipient: form.recipient
        });
        res.send(req.body);
      }
    });
    const mailer = new Mailer(newForm, contactFormTemplate(newForm));
    try {
      await mailer.send();
    } catch (err) {
      res.status(422).send(err);
    }
  });

当我向此路由发出POST请求时,res.send(req.body);返回一个空对象,我收到错误" UnhandledPromiseRejectionWarning:未处理的promise promise(拒绝ID:1):ReferenceError:newForm未定义& #34;

我无法理解为什么它没有定义变量newForm。我发现梅勒线中newForm未定义:

const mailer = new Mailer(newForm, contactFormTemplate(newForm));我无法理解为什么这一行没有被传递给newForm变量,因为它在同一app.post函数范围内。

0 个答案:

没有答案