Node.js 从handlebar页面检索nodejs中的req.body解析器数据时犯了什么错误?
我试图通过body解析器将弹出表单数据导入nodejsapi路由,但其显示未定义。我已经在app.js中安装并包含了所有必要的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
<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
});