我正在使用node,express,html,我正在尝试使用html表单发布到我的服务器端。 问题是我得到{}作为我的req.body。
我的html表单如下:
<form method = 'post' action='get_name' enctype="multipart/form-data">
<input type="text" name="form_name"><br>
<input type="submit" value="Upload name">
</form>
我在我的node.js文件的开头使用以下内容:
app.use(bodyParser.urlencoded({limit:'5mb', extended:false}));
app.use(busboy());
我的app.post如下:
app.post('/get_name',function(req, res, next){
console.log("the name of the form is : ", req.body);
res.redirect('/admin');
});
当我想要获取req.body.form_name时,我得到了未定义。我无法找出我的代码有什么问题。欢迎任何建议。 :)
答案 0 :(得分:3)
如果你打算使用busboy,你应该遵循文档:
https://github.com/mscdex/busboy
否则,bodyParser()不支持多部分表单数据。我个人推荐这个库,因为它很简单:
https://www.npmjs.com/package/multer
这将以您打算使用它的方式填充req.body。
答案 1 :(得分:0)
将connect-multiparty模块用于multipart / form-data,并将其添加到API路由的中间件中。
let multipart = require('connect-multiparty');
let multipartMiddleware = multipart();
router.route('/customer').post(validate(validations.customerValidation.registerCustomer),multipartMiddleware,CONTROLLER.CustomerBaseController.registerCustomer);
它正在我这边工作。
答案 2 :(得分:-3)
试试这个:
app.post('/get_name',function(req, res, next){
console.log("to name of the form is : ", req.param('form_name'));
res.redirect('/admin');
});