0

我正在尝试使用如何在给定多个可下载链接的节点中创建 zip 文件中提供的代码在节点中创建一个 zip 文件,如下所示:

var fs = require('fs');
var archiver = require('archiver');
var output = fs.createWriteStream('./example.zip');
var archive = archiver('zip', {
    gzip: true,
    zlib: { level: 9 } // Sets the compression level.
});

archive.on('error', function(err) {
  throw err;
});

// pipe archive data to the output file
archive.pipe(output);

// append files
archive.file('/path/to/file0.txt', {name: 'file0-or-change-this-whatever.txt'});
archive.file('/path/to/README.md', {name: 'foobar.md'});

//
archive.finalize();

当我使用这个建议时,下载 zip 文件时没有任何提示询问我想将文件保存在哪里 - 有什么办法可以让我创建一个提示,询问我想保存在哪里文件,这几天很正常吗?

如果这绝对不可能,是否可以始终将文件保存在下载文件夹中(无论是在 mac 还是 windows 或任何其他操作系统上)?

4

1 回答 1

0

所以这里有几件事。就“提示”或“弹出”而言,您不会发现任何与 WinForms 一样的东西,您可以使用命令行选项,例如prompts您可以将其用作用户输入。

https://www.npmjs.com/package/prompts

您将希望使用path更具体path.join()的方法来解决 mac/windows/linux 问题。

你需要在 node.js 中使用 path.join 吗?

您可以运行express服务器并创建用于res.download()提供压缩文件的路由。

https://expressjs.com/en/api.html#res.download

于 2020-04-11T15:02:15.113 回答