Javascript ExpressJS变量未定义

Javascript ExpressJS变量未定义,javascript,node.js,express,Javascript,Node.js,Express,我有一个ExpressJS应用程序,当用户向路由发出POST请求时,它应该使用req.params.formId 我有一些console.log语句用于调试,因此我可以看到返回的信息 路由应该查找传递的ID,当找到它时,使用req.body数据和MongoDB文档中的一个字段,但它似乎返回为undefined 以下是路线代码: app.post("/api/v1/forms/:formId", (req, res) => { const { name, email, message

我有一个ExpressJS应用程序,当用户向路由发出
POST
请求时,它应该使用
req.params.formId

我有一些console.log语句用于调试,因此我可以看到返回的信息

路由应该查找传递的ID,当找到它时,使用
req.body
数据和MongoDB文档中的一个字段,但它似乎返回为
undefined

以下是路线代码:

app.post("/api/v1/forms/:formId", (req, res) => {
    const { name, email, message } = req.body;
    console.log(req.body);

    Form.findById(req.params.formId, Form.recipient, err => {
      if (err) {
        res.send(err);
      } else {
        const formRecipient = Form.recipient;

        const newForm = {
          name,
          email,
          message,
          recipient: formRecipient
        };
        console.log(newForm);
        const mailer = new Mailer(newForm, contactFormTemplate(newForm));
        try {
          mailer.send();
          res.send(req.body);
        } catch (err) {
          res.send(err);
        }
      }
    });
  });
例如,如果我向
localhost:5000/api/v1/forms/5ad90544883a6e34ec738c19发出POST请求,
newForm
的console.log显示
{name:'Mr Tester',
电邮:'person@example.com',
留言:“你好”,
收件人:未定义}


forms Mongoose模式有一个名为“收件人”的字段。正确的方法是提供要获取的字段作为第二个参数:

Form.findById(req.params.formId, 'recipient', (err, form) => {

   if (err) {
     // error handling code
   } else {
     const formRecipient = form.recipient;
   }
   ...
});
这是