使用雷斯蒂,我们希望在正文中接收带有XML的POST请求。
我正在使用server.use(restify.bodyParser())
来解析请求体,但是请求是与Content-Type: application/xml
一起出现的,而且我不能100%肯定这是处理它的最佳方法。
myRestifyServer.post('/my/place/to/post/to', function (req, res, next) {
var xml = req.body; // ?
var myObject = myFavouriteXmlParser(xml)
// and so on...
})
但是,req.body似乎用type
属性和data
属性包含和对象--大概是当它不知道如何处理某些东西时,bodyParser的默认操作。
是否有可能以某种方式扩展bodyParser以接受application/xml
并对其进行解码,或者我是否需要创建一个新的插件来实现这一点?
发布于 2017-10-13 06:46:06
bodyParser中间件无法处理xml数据。但是,如果要使用它,则必须使用bodyParser.raw([options])
或bodyParser.text([options])
,并将返回的数据提供给xml解析库。
在您的情况下,一个更好的解决方案是使用另一个中间件来处理包含xml主体数据的请求。
下面是一些例子:
https://stackoverflow.com/questions/41702720
复制