【发布时间】:2015-10-06 20:37:26
【问题描述】:
我有一个 Node 应用程序,它正在从 rest API 请求中获取 zip 文件。我将以下代码用于 2MB 大小的文件,大约需要 10 秒,这里有提高性能的方法吗?
文件应该被提取并保存在本地系统中...
除了性能之外,此代码工作正常......
`1.如果请求应该从客户端调用并且需要很长时间 我什么时候应该发送回复?如果我等到这个过程 完成这可能需要 10 秒...
2.如果是的话,我应该在这种情况下使用promise吗?您可以提供示例吗?请提供以下代码(蓝鸟,q...)
3.有办法以某种方式优化性能
var unzip = require('unzip');
app.post('/', function(req, res) {
var ext = unzip.Extract({
path: 'C://myFolder'
}).on('close', function() {
res.sendStatus(200);
}).on('error', function(err) {
// res.sendStatus(500);
});
req.pipe(ext);
});
【问题讨论】:
-
你到底想做什么?将压缩文件发布到服务器,并即时提取此文件?
-
@Tobi 是的,见this question(不同的用户,但明显相似)
-
@Tobi - 正确这是我需要的:)
-
我看不出这个问题在哪里使用了 Promise、Q 或 Bluebird?
-
在客户端解压数据,通过支持 zip 的协议发送解压后的数据,然后您将使用 Node 中的非主线程代码为您处理它,它'也会让你的生活更轻松,这意味着这个逻辑不在你的代码中,因为它可以在 HTTP 级别完成。
标签: javascript node.js performance express unzip