如何在使用xml的节点js中从请求中读取xml
我在node中公开了一个post方法如何在使用xml的节点js中从请求中读取xml,xml,node.js,post,Xml,Node.js,Post,我在node中公开了一个post方法 function onRequest(request, response) { var postData=''; var pathname = url.parse(request.url).pathname; console.log("Request for " + pathname + " received."); if(request.method==="POST"){ request.setEncodi
function onRequest(request, response) {
var postData='';
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " received.");
if(request.method==="POST"){
request.setEncoding("utf8");
console.log('in post');
request.addListener("data", function(postDataChunk) {
postData += postDataChunk;
console.log("Receiving POST data chunk '"+postDataChunk + "'.");
});
request.addListener("end", function() {
console.log("Received POST data ");
console.log(postData);
});
}
}
我希望控制台日志是xml字符串
<ContainerItem>
<Id>Id</Id>
<Name>Name</Name>
<Description>Description</Description>
<Type>Type</Type>
</ContainerItem>
如何将其作为XML字符串获取?因此,我可以使用xml2js库对其进行解析。数据以querystring格式接收,并且在接收时是URL编码的,因此需要对其进行解码。为此,您可以使用本机模块:
var qs = require('querystring');
var str = 'text=%3CContainerItem%3E%0D%0A++++++++++%3CId%3EId%3C%2FId%3E%0D%0A++++++++++%3CName%3EName%3C%2FName%3E%0D%0A++++++++++%3CDescription%3EDescription%3C%2FDescription%3E%0D%0A++++++++++%3CType%3EType%3C%2FType%3E%0D%0A%3C%2FContainerItem%3E';
var xml = qs.parse(str);
// data.text
已解析的查询字符串现在位于对象中,因此您现在可以将data.text
传递给XML解析器:
var parseString = require('xml2js').parseString;
parseString(xml, function(err, result) {
// parsed XML is in result
});
var parseString = require('xml2js').parseString;
parseString(xml, function(err, result) {
// parsed XML is in result
});