我最近創建了一個接受文件的API。我正在嘗試使用Postman測試API。如果我使用x-wwww-form-urlencoded
身體類型發佈帖子請求,一切正常,我會得到所有預期的數據。唯一的問題是它不允許發送文件。如果我使用form-data
正文類型,它允許您發送文件,但我在後端沒有收到任何內容。不知道郵差是否有問題,或者我做錯了什麼。我的直覺是,目前後端不接受form-data
,這就是爲什麼我沒有收到任何數據。我能做些什麼來改變它?如何在NodeJS中允許Form-Data
我的頭看起來像這樣,到目前爲止,
res.setHeader('Access-Control-Allow-Origin', origin);
res.header("Access-Control-Allow-Methods", "GET, POST, PATCH, PUT, DELETE, OPTIONS");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, form-data");
app.js
app
// static route will go to the client (angular app)
.use(express.static('client'))
// secured routes
.use('/api', secured_route)
// add a user route
.post('/user', user_api_controller.add_user)
// delete this in the production
.use(function(req, res, next) {
res = allowed_orgins(req, res);
next();
})
;
allowed_orgins = function (req, res){
var allowedOrigins = ['http://localhost:4200', 'http://localhost:8100'];
var origin = req.headers.origin;
if(allowedOrigins.indexOf(origin) > -1){
res.setHeader('Access-Control-Allow-Origin', origin);
res.header("Access-Control-Allow-Methods", "GET, POST, PATCH, PUT, DELETE, OPTIONS");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, multipart/form-data");
}
return res;
}
user_api_controller.js
module.exports.add_user = function (req, res) {
console.log(req.body.username);
console.log(req.body.other_parameters);
}
如果我使用form-data
,我什麼都不會在控制檯上打印出來,但是當我使用x-wwww-form-urlencoded
時它可以正常工作。
我用multer middle ware
,我還沒有得到任何東西。當我的後端將收到一些東西時,中間件會發揮作用。我試圖得到form-data
的純文本字段,我也沒有得到。這意味着我的後端無法接收所有form-data
字段,而不僅僅是文件,而是文本字段。
你需要通過req.body窗體form-data @HafizTemuri – muthukumar
@muthukumar對不起,我沒有抓住。請你爲我詳細說明一下嗎? –
你的問題是不是與標題Kindly通過Muller Middle Ware – muthukumar