使用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
并对其进行解码,或者我是否必须创建一个新的插件才能实现这一目标?
答案 0 :(得分:1)
bodyParser中间件无法处理xml正文数据。
但是,如果要使用它,则必须使用bodyParser.raw([options])
或bodyParser.text([options])
并将返回的数据提供给xml解析库。
在您的情况下,更好的解决方案是使用另一个处理包含xml正文数据的请求的中间件。
一些例子: