我是JS新手,開始使用sails框架。我需要解析中間件中的http res體來將工作放在芹菜隊列中。我嘗試過使用skipper-按照文檔 - 但我總是將res.body的值設置爲undefined。當我登錄回覆時,我只能得到關於相同的元信息。Sailsjs中間件解析res.body
下面是我正在嘗試的中間件代碼 - 有人可以讓我知道我做錯了什麼?
order: [
'startRequestTimer',
'cookieParser',
'session',
'requestLogger',
'bodyParser',
'handleBodyParserError',
'compress',
'methodOverride',
'poweredBy',
'$custom',
'router',
'www',
'favicon',
'404',
'500'
],
requestLogger: function (req, res, next) {
var start = (new Date().getTime());
res.on('finish', function(){
console.log(res.body)
});
return next();
},
bodyParser: require('skipper')
PS:我沒有掛在船長身上 - 只要能夠解析結果的身體,這一切都很好。謝謝!
迴應是不好的地方工作有點這個。中間件是最好的地方,所以他可以用'req.body'替換'res'作爲中間件,並使其工作。 – ghaiklor
@EugeneObrezkov這根本不是真的。 'req.body'包含_request _--發送到服務器的數據的主體。它與服務器發回的數據無關。 Express與其他一些框架(如Django)沒有「響應」中間件;一箇中間件可以(通過引用Express的文檔)「調用(例如)'res.send'結束請求 - 響應循環」,但是之後將不會調用其他中間件。如果目標是在將其發送到客戶端之前以某種標準方式操作服務器響應,那麼Sails響應就是答案。 – sgress454
據我所知,他想「我需要解析http res體」。然後我們討論了他在'res.body'中犯了一個錯誤,所以他需要用'req.body'替換。也許我錯了,但我認爲他正在試圖解析請求,並且不做任何迴應。 – ghaiklor