javascript - 在线办公室 : WOPI PutFile is getting an empty request

标签 javascript node.js ms-word ms-office ms-wopi

我正在实现 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);
...  

非常感谢任何建议。

最佳答案

我找到了答案:

将以下中间件放在 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 ,一个 Node 包很不错,我在我的解决方案中使用它。

var rawBodyParser = require('raw-body-parser');

app.use(rawBodyParser());

获取原始数据:

var rawBody = req.rawBody.toString('utf8');

关于javascript - 在线办公室 : WOPI PutFile is getting an empty request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34865268/

相关文章:

javascript - Steam API 访问控制允许来源问题

python - 使用 Python-Docx 设置字体属性

javaScript:揭示原型(prototype)模式:这两个版本有区别吗?

javascript - Chart js 在鼠标悬停时显示旧数据

javascript - 如何在需要的字段集标签中制作输入标签?

javascript - 如何将 Canvas 恢复到另一个函数中保存的状态?

javascript - 简单的 JavaScript 代码不适用于 Node.js

javascript - 如何控制 WebRTC 视频通话中的带宽?

c# - 使用 C# 读取和修改 Microsoft Word 文档

ms-word - VSTO Word 加载项 - 如果从可执行文件启动 Word,则不会触发新文档事件