Node.js 从handlebar页面检索nodejs中的req.body解析器数据时犯了什么错误?

Node.js 从handlebar页面检索nodejs中的req.body解析器数据时犯了什么错误?,node.js,express,handlebars.js,multer,body-parser,Node.js,Express,Handlebars.js,Multer,Body Parser,我试图通过body解析器将弹出表单数据导入nodejsapi路由,但其显示未定义。我已经在app.js中安装并包含了所有必要的body解析器包,以及相应的路由代码文件 以下是车把表单代码: <form name="contactform" id="contactform" class="contact-form" enctype="multipart/form-data" action="/api/u

我试图通过body解析器将弹出表单数据导入nodejsapi路由,但其显示未定义。我已经在app.js中安装并包含了所有必要的body解析器包,以及相应的路由代码文件

以下是车把表单代码:

<form name="contactform" id="contactform" class="contact-form" enctype="multipart/form-data" action="/api/updateProfile" method="post">
      <div class="cd-popup-container" style="">
        <p style="">
          <a href="" class="cd-popup-close cd-close-button">
            <i class="fa fa-times" style="pointer-events:none;"></i>
          </a>
        </p>

        <div class="name">
          <label for="name">Username</label>
          <input type="text" id="name" name="name" />
        </div>
        <div class="email">
          <label for="email">Email</label>
          <input type="text" id="email" name="email" />
        </div>
        <div class="locationEdit">
          <label for="locationEdit">Location</label>
          <input type="text" id="locationEdit" name="locationEdit" />
        </div>
        <div class="oldPass">
          <label for="oldPass">Old Password</label>
          <input type="password" id="oldPass" name="oldPass" />
        </div>
         <div class="newPass">
          <label for="newPass">New Password</label>
          <input type="password" id="newPass" name="newPass" />
        </div>
        <div class="confirmPass">
          <label for="confirmPass">Confirm Password</label>
          <input type="password" id="confirmPass" name="confirmPass" />
        </div>
        <div class="uploadAvatar">
         <label for="uploadAvatar">Upload Avatar --- >>></label>
         <input type="text" id="uploadAvatar" name="uploadAvatar" disabled/>
       </div>
        <div class="avatarFileUpload">
          <input type="file" name="avatarFileUpload" accept="image/*" />
        </div>
        <br>
        <br>
          <button type="submit" class="btn btn-lg btn-primary btn-block">Update</button>
      </div>
    </form>

很有可能你错过了通往路线的线路。我看不到你的应用程序设置代码,但你应该用multer定义你的投递路线,如下所示:

router.post("/api/updateProfile", upload.single("avatarFileUpload"), (req, res, next) => {
  // req.file is the `avatarFileUpload` file
  // req.body will hold the text fields, if there were any
});
之所以在
req.body
中看不到任何内容,是因为传入的请求是
'Content-type:multipart/formdata'
,而body parser包用于解析传入的JSON请求。这样的请求具有
“Content-type:application/json”

router.post("/api/updateProfile", upload.single("avatarFileUpload"), (req, res, next) => {
  // req.file is the `avatarFileUpload` file
  // req.body will hold the text fields, if there were any
});