javascript - node.js/从响应写入文件

标签 javascript node.js post

我发送下一个 POST 请求:

var post_data = JSON.stringify({
    'uuid': '00d25',
    'file': 'ORIGINAL',
    'store' : 'someStore'
});
console.log("B");
// An object of options to indicate where to post to
var post_options = {
    'host': 'localhost',
    'port': '5000',
    'path': '/getDocu',
    'method': 'POST',
    'headers': {
        'Content-Type': 'application/json'
    }
};

// Set up the request
var post_req = http.request(post_options, function(res) {
       // Here I need to get the data response
}

我想创建一个文件,并放置从响应中获得的所有数据。所以我尝试这样做:

 res.setEncoding('utf8');
        var writeStream = fs.createWriteStream("C://Client//something4.txt");

        res.on('data', function (chunk) {
            writeStream.write(chunk);
        });
        res.on('end', function () {
            writeStream.close();
        })

但我发现我只获得了该文件的一部分(65KB/258KB),而不是整个文件。

我做错了什么?

最佳答案

您可能在有机会将所有内容写入磁盘之前就关闭了文件句柄。

由于 res 是一个 Stream,您应该尝试以下操作:

res.setEncoding('utf8');
var writeStream = fs.createWriteStream("C://Client//something4.txt");
res.pipe(writeStream);

关于javascript - node.js/从响应写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24163159/

相关文章:

javascript - 为什么我需要输入该命令两次才能在 Typescript、Ionic 2 中运行?

javascript - 将Javascript函数与Grails应用程序集成

javascript - GraphQL 和 Sequelize 不返回插入的对象

javascript - Sails Js - 按关联值与蓝图排序

javascript - 如何在不将文件内容加载到 JavaScript 内存的情况下知道文件中的行数?

java - Android 应用程序在访问本地主机时崩溃

带有授权和 JSON 数据的 C# HttpClient 发布 - 401 未经授权

php - 将 PHP POST 响应的 JSON 主体编码为 HMAC SHA256,然后编码为 Base64

javascript - 获取调用了静态函数的类的名称

javascript - 使用 CSS3 translate 代替 offset position top/left