【发布时间】:2020-05-28 04:48:22
【问题描述】:
对不起,如果这是一个菜鸟问题,但我无法让它工作......
我有一个使用 NodeJS 和 ExpressJs 并提供一些使用 VueJS 构建的静态内容的后端。
我想允许用户下载文件,所以我正在尝试实现它。
在后端,这里是代码
app.get('/download', function (req, res, next) {
let queryparams = req.query;
if (queryparams.filename) {
try {
res.download(queryparams.filename);
} catch (error) {
console.log('Unable to read ' + queryparams.filename + ' file. Please check');
res.write('Unable to read ' + queryparams.filename + ' file. Please check');
res.status(501);
}
res.end();
} else {
next();
}
});
在前端,我尝试使用 downloadjs npm package 这个,但它不起作用,而且我需要它吗?
fetch(`https://${servername}/download?filename=` + data.filename)
.then((response) => response.blob())
.then((blob) => downloadjs(blob, data.filename));
任何帮助将不胜感激
鲍勃
【问题讨论】:
-
你能在 blob 上打印内容吗?
-
什么是控制台日志,运行代码的结果是什么?你试过什么?在任何似乎合理怀疑的地方设置断点和记录变量。我的猜测,控制台记录您发送的所有疯狂的 concat 等,确保这是合法的..然后用您尝试过的内容以及不同场景产生的各种结果更新您的答案。请:) 谢谢!