如何使用快递从服务器下载文件

我正在使用node.js和expression。 我想在服务器上创build一个文件,然后在终点点击时下载。 这是我现在的代码。

router.get('/download', (req, res) => { const fileController = new FileController(); fileController.generateJSONFile() .then((file) => { fs.writeFile('fooFile.json', file, 'utf8'); }).then((success) => { res.download('fooFile.json'); }) .catch((error) => { res.status(500).send(); }); }); 

我也想在下载完成后立即从服务器上删除文件。

如果有更好的方法来实现这个目标,我不需要使用res.download()。

这会有帮助吗? 这应该告诉浏览器将文件下载为fooFile.json 。 这不需要保存临时文件。

 router.get('/download', (req, res) => { const fileController = new FileController(); fileController.generateJSONFile() .then((file) => { res.setHeader('Content-Type', 'application/octet-stream; charset=utf-8'); res.setHeader('Content-Disposition', 'attachment; filename="fooFile.json"'); res.send(file); }) .catch((error) => { res.status(500).send(); }); }); 

如果你只是想发送json

 res.setHeader('Content-Type', 'application/json; charset=utf-8'); res.send(file);