当前位置:  开发笔记 > 编程语言 > 正文

Express API JSON和XML POST请求

如何解决《ExpressAPIJSON和XMLPOST请求》经验,为你挑选了1个好方法。

我有一个快速的API,它允许json发布请求。但是,在我的场景中,我的API之一需要接受XML帖子主体,而不是JSON。

所以我的快速应用程序可以使用以下命令进行设置:

// Init App
var app = express();

// BodyParser Middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: false
}));

这是我的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);
  }
  });
});

当我传递json值时,这很好用,例如,这是我的Post请求:

{
    "milliseconds":"600"
}

但是现在我有了一个我想执行POST请求的API,但是我的POST请求需要以XML的形式发送。这就是我的API的样子:

router.post('/test', function(req, res) {
    var body = req
    console.log(body)
});

没什么复杂的,因为即时通讯没有收回任何东西。这是我执行POST请求的方式:



   myMethod
    
      
         hello
      
   

但是,我的身体空了回来。知道我该如何解决吗?理想情况下,我想接受此XML请求,然后也以我选择的XML进行响应。做这个的最好方式是什么?

接受请求,转换为JSON,编写JSON响应并转换回XML响应?

任何帮助将不胜感激!



1> R. Gulbrands..:

bodyParser仅支持以下格式(如果您使用的是body-parser):

JSON正文解析器

原始身体解析器

文字正文解析器

URL编码的表单主体解析器

因此,如果您想解析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 
});

我希望这可以帮助您朝正确的方向发展

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有