gpt4 book ai didi

node.js - Node Express - Http post 返回一个文件

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:08:39 24 4
gpt4 key购买 nike

提交 HTTP 帖子时我无法返回文件

我知道我的所有代码都在运行,直到下载/发送文件部分。

var postData = req.body;
var outputString = "";

mkdirp('./server/tmp');

_.each(postData, function (each) {
outputString += each.variable + ": " + each.value + " !default;\n";
});

fs.writeFile(path.resolve("./server/tmp/ionic.app.scss"), outputString);

res.attachment(path.resolve("./server/tmp/ionic.app.scss"));
res.end('hello,world\nkeesun,hi', 'UTF-8');

我怎样才能做到这一点,当用户点击一个按钮时,它会发送一个 POST 请求,而该请求又会下载一个由 Node 服务器动态创建的文件?

最佳答案

res.attachment() 仅设置内容配置 header 。请改用 res.download()

res.download(path.resolve("./server/tmp/ionic.app.scss"));

res.download() 设置内容配置 header 并发送文件。

-- 编辑--

就像我在上一条评论中提到的那样,我没有提到您应该删除代码中的最终 res.end()

不过,我想知道为什么要将生成的文本保存到文件中只是为了发送它。一种简化的方法如下:

var postData = req.body;
var outputString = "";

mkdirp('./server/tmp');

_.each(postData, function (each) {
outputString += each.variable + ": " + each.value + " !default;\n";
});


res.attachment("ionic.app.scss");
res.send(outputString);
res.end();

这将实现相同的目标,而无需先将 outputString 保存到文件中。

关于node.js - Node Express - Http post 返回一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25837009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com