Sailsjs中间件parsingres.body

我是JS新手,并开始使用sails框架。 我需要parsing中间件中的http res体来将工作放在芹菜队列中。 我已经尝试使用skipper-按照文档 – 但我总是得到res.body的价值未定义。 当我login回复时,我只能得到关于相同的元信息。

下面是我正在尝试的中间件代码 – 有人可以让我知道我做错了什么?

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:我没有挂上队长,只要能够parsing结果的身体就好了。 谢谢!

船长用于parsing请求主体。 在Sails(以及所有基于Express的应用程序)中传递的response对象不包含实际响应,它只是用于形成响应的一组方法。 一旦你用res.send东西来触发响应,就没有简单的方法来拦截它。 相反,您可以使用Sails 自定义响应 ,并在实际发送输出之前对自定义响应中的数据执行任何操作。 这里最好的做法是使用res.ok (“ok”响应)。 所以在你的Sails控制器中,你可能会做什么

 res.send(someData) 

相反,做

 res.ok(someData) 

然后在你的api/responses/ok.js文件中,将作业添加到你的队列中,或者你需要做的任何事情。

另外,把config/http.js文件放回到find它的方式,直到你确实需要弄乱中间件或正文parsing器;-)

有没有像res.body这样的事情。 它的req.body

http://sailsjs.org/documentation/reference/request-req/req-body