我有一个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函数范围内。