解决在请求正文中解析XML的问题

时间:2017-01-17 16:54:29

标签: node.js xml restify

使用Restify,我们希望在正文中接收带有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并对其进行解码,或者我是否必须创建一个新的插件才能实现这一目标?

1 个答案:

答案 0 :(得分:1)

bodyParser中间件无法处理xml正文数据。 但是,如果要使用它,则必须使用bodyParser.raw([options])bodyParser.text([options])并将返回的数据提供给xml解析库。

在您的情况下,更好的解决方案是使用另一个处理包含xml正文数据的请求的中间件。

一些例子: