Node.js 内容类型为text/csv时的Sails.js正文内容
我是否需要执行任何特殊操作来处理文本类型为Node.js 内容类型为text/csv时的Sails.js正文内容,node.js,express,sails.js,Node.js,Express,Sails.js,我是否需要执行任何特殊操作来处理文本类型为的POST请求 我需要处理text/csv,但当我进入控制器中的方法时,看起来Sails.js试图将主体解析为JSON: postStuff: function(req, res) { sails.log.info("postStuff") sails.log.info(req.body) sails.log.info(req.headers['content-type']); ...etc... 给我: info: postS
的POST
请求
我需要处理text/csv
,但当我进入控制器中的方法时,看起来Sails.js试图将主体解析为JSON:
postStuff: function(req, res) {
sails.log.info("postStuff")
sails.log.info(req.body)
sails.log.info(req.headers['content-type']);
...etc...
给我:
info: postStuff
info: {}
info: text/csv
我发现bodyParser
中间件上的文档有点模糊
FWIW,我还尝试在请求中将内容类型设置为text/plain
,但没有成功
我还尝试显式添加一个文本体解析器作为中间件,但似乎没有任何效果:
http.js
module.exports.http = {
bodyParserText: require('body-parser').text(),
middleware: {
order: [
'startRequestTimer',
'cookieParser',
'session',
'myRequestLogger',
'bodyParser',
'bodyParserText',
'handleBodyParserError',
'compress',
'methodOverride',
'poweredBy',
'$custom',
'router',
'www',
'favicon',
'404',
'500'
],
...etc...
哇,这原来很容易。。。但是由于缺乏来自框架的反馈,调试起来非常困难
在https.js
中,新中间件的元素必须位于中间件
元素中。。。如果课程有意义:
module.exports.http = {
// NOT HERE
// bodyParserText: require('body-parser').text(),
middleware: {
// HERE
bodyParserText: require('body-parser').text(),
order: [
'startRequestTimer',
'cookieParser',
'session',
'myRequestLogger',
'bodyParser',
'bodyParserText',
'handleBodyParserError',
...etc...
如果sails.js(express?)给出一个警告就好了,因为我假设它找不到bodyParserText
注意中间件中的bodyParserText
的顺序。顺序
列表也没有任何区别。