2017-01-17 4 views
2

Restifyを使用して、本文にXMLでPOSTリクエストを受信したいとします。要求の本体でXMLを解析する

私はserver.use(restify.bodyParser())を使用してリクエストの本文を解析していますが、リクエストはContent-Type: application/xmlとなっていますが、これを処理する最も良い方法は100%わかりません。それが何かをどうするかわからないbodyParserのおそらくデフォルトのアクション -

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プロパティを持つオブジェクトのようです。

application/xmlを受け入れるようにbodyParserを拡張してデコードすることはできますか、それを達成するには新しいプラグインを作成する必要がありますか?

答えて

1

bodyParserミドルウェアはxml本体データを処理できません。 ただし、使用する場合は、bodyParser.raw([options])またはbodyParser.text([options])を使用し、返されたデータをxml解析ライブラリに渡す必要があります。

あなたの場合のより良い解決策は、xmlボディデータを含むリクエストを処理する別のミドルウェアを使用することです。

いくつかの例: