如何使用快递从服务器下载文件
我正在使用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);