我使用node-soap模块在nodejs中创建了soap服务器。但是我收到一个错误,表明在传入的soap xml中存在一些问题(下面列出)。node-soap - 如何在肥皂监听器处理soap请求之前捕获soap请求
< soap log: { Fault: < { faultcode: 500, < faultstring: 'Invalid XML', < detail: 'Error: Non-whitespace before first tag.\nLine: 1\nColumn: 1\nChar: -', < statusCode: undefined } }
当我在谷歌搜索周围,它表示,它是BOM(字节顺序标记)的问题,其Windows操作系统插入到unicode的缓冲器。大多数解决方案建议在调用xml解析器之前替换/删除此BOM。
现在,当我使用节点皂模块,我无法弄清楚在何处应用此修复程序,下面是我的服务器代码。
/**
* Simple demonstration of soap service
**/
var soapService = require("./rv.js");
var xml = require('fs').readFileSync('./mmsxmlpushservicews.wsdl.xml', 'utf8');
var express = require('express');
var bodyParser = require('body-parser');
var soap = require('soap');
var app = express();
app.use(bodyParser.raw({type: function() { return true; }, limit: '5mb' }));
app.listen(8001, function(err) {
if (err) {
console.error("error:", err);
process.exit(1);
}
var server = soap.listen(app, '/smshttp/soapws', soapService, xml);
server.log = function(type, data) {
//console.log("soap log:", data);
}
console.log("service running on port 8001...");
});
- 在上述肥皂服务器代码,有一个事件/回调钩子,我可以利用修改的肥皂请求缓冲器中,肥皂服务器来执行解析前?
- 如果是,我应该在哪里以及如何做?