如果快遞bodyParser
未啓動,如何才能訪問POST請求中的數據?如何通過假設默認內容類型解析Express/NodeJs中缺少內容類型的HTTP請求?
var server = express();
server.use(express.bodyParser());
server.post('/api/v1', function(req, resp) {
var body = req.body;
//if request header does not contain 'Content-Type: application/json'
//express bodyParser does not parse the body body is undefined
var out = {
'echo': body
};
resp.contentType('application/json');
resp.send(200, JSON.stringify(out));
});
注:ExpressJs 3.X + req.body
無法自動獲得,並要求bodyParser
激活。
如果未設置內容類型標題,是否可以指定缺省內容類型application/json
並觸發bodyParser
?
否則是否可以從這個快速POST函數內使用裸nodejs方式訪問POST數據?
(如req.on('data', function...
)
只使用'req.on('data')'或做'req.headers ['content-type'] = req.headers ['content-type'] || 'application/json'在主體解析器之前,但實際上這是客戶端錯誤。 –
@JonathanOng謝謝。是的,我知道這是一個客戶端錯誤 - 只是試圖解決它。在身體解析器開始之前,我該如何去做一些事情? AFAICT,這個快速PUT回調函數被輸入時,它已經被觸發。 – bguiz