noD*_*De1 2 xml api json node.js express
我有一个快速的API,它允许json发布请求。但是,在我的场景中,我的API之一需要接受XML帖子主体,而不是JSON。
所以我的快速应用程序可以使用以下命令进行设置:
// Init App
var app = express();
// BodyParser Middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
Run Code Online (Sandbox Code Playgroud)
这是我的POST api JSON路由的示例:
router.post('/', function(req, res, next) {
defaultPoll.create(req.body, function(err, post) {
if (err) { console.log(err)
} else {res.json(post);
}
});
});
Run Code Online (Sandbox Code Playgroud)
当我传递json值时,这很好用,例如,这是我的Post请求:
{
"milliseconds":"600"
}
Run Code Online (Sandbox Code Playgroud)
但是现在我有了一个我想执行POST请求的API,但是我的POST请求需要以XML的形式发送。这就是我的API的样子:
router.post('/test', function(req, res) {
var body = req
console.log(body)
});
Run Code Online (Sandbox Code Playgroud)
没什么复杂的,因为即时通讯没有收回任何东西。这是我执行POST请求的方式:
<?xml version="1.0"?>
<methodCall>
<methodName>myMethod</methodName>
<params>
<param>
<value><string>hello</string></value>
</param>
</params>
</methodCall>
Run Code Online (Sandbox Code Playgroud)
但是,我的身体空了回来。知道我该如何解决吗?理想情况下,我想接受此XML请求,然后也以我选择的XML进行响应。做这个的最好方式是什么?
接受请求,转换为JSON,编写JSON响应并转换回XML响应?
任何帮助将不胜感激!
R. *_*sen 10
bodyParser仅支持以下格式(如果您使用的是body-parser):
因此,如果您想解析XML,建议您使用express-xml-bodyparser
var xmlparser = require('express-xml-bodyparser');
app.use(xmlparser());
app.post('/test', function(req, res, next) {
// req.body contains the parsed xml
});
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助您朝正确的方向发展
| 归档时间: |
|
| 查看次数: |
8305 次 |
| 最近记录: |