我正在使用node.js和express。我想在服务器上创建一个文件,然后在命中终点时下载。 这是我目前的代码。
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()。
答案 0 :(得分:2)
这会有帮助吗?这应该告诉浏览器将文件下载为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);