我正在实施WOPI服务器以尝试与Office Online集成。当WOPI客户端调用PutFile方法(保存文件)时,它发送一个空请求(req.body.length === 0)。这是Node / Express代码:
app.post('/wopi/files/:fileId/contents', function (req, res) {
console.log(req.body.length);
...
非常感谢任何建议。
答案 0 :(得分:1)
我找到了答案:
将以下中间件放在bodyParser中间件之前。它会在request.rawBody中收集原始身体数据,并且不会干扰bodyParser。
app.use(function(req, res, next) {
var data = '';
req.setEncoding('utf8');
req.on('data', function(chunk) {
data += chunk;
});
req.on('end', function() {
req.rawBody = data;
next();
});
});
app.use(express.bodyParser());
有关详细信息,请参阅此处:https://stackoverflow.com/a/13565786/5976568
修改强>
raw-body-parser,节点包非常好,我在我的解决方案中使用它。
var rawBodyParser = require('raw-body-parser');
app.use(rawBodyParser());
获取原始数据:
var rawBody = req.rawBody.toString('utf8');
答案 1 :(得分:0)
如果您正在将WOPI主机与Office Online集成,我假设您或您的公司可能已经在Microsoft的所谓Office 365云存储合作伙伴计划中注册
如果情况确实如此,那么您可以联系他们在Yammer的积极支持团队。在那里,您可以发布您的疑问,这些问题将得到认真回答。