首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >http.createServer如何使用fs.createReadStream从needle.post接收数据

http.createServer如何使用fs.createReadStream从needle.post接收数据
EN

Stack Overflow用户
提问于 2016-02-18 03:53:25
回答 2查看 99关注 0票数 1

我想从nodejs服务器向另一个nodejs服务器发送图像。

我知道有很多解决方案,但我希望通过以下方式找到办法:

服务器A(发件人)

备选案文1

代码语言:javascript
复制
needle.post('http://127.0.0.1:8000', fs.createReadStream('test.png'), function(err, resp, body) {               
});

选项2

代码语言:javascript
复制
var reader = fs.createReadStream('test.png');
reader.pipe(request.post('http://127.0.0.1:8000'));

服务器B(接收机)

代码语言:javascript
复制
http.createServer(function(req, res) {
  if (req.method === 'PUT' || req.method === 'POST') {
     req.on('data', function(chunked) {
        // I got nothing here
     });
     res.on('data', function(chunked) {
        // I got nothing here
     });
  }
}).listen(8000, function() {
  console.log('Listening for requests');
});

问题是,如果我读取使用fs.createReadStream发送的文件数据,就无法从服务器B接收任何数据。

编辑还需要知道如何使用Express处理上面的内容

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-18 08:52:27

您可以尝试创建fs.createWriteStream()并将其分配给req.pipe()。

代码语言:javascript
复制
...
var saveTo = './test.png',
    ws = fs.createWriteStream(saveTo);

ws.on('close', function () {
    cb();
});
req.pipe(ws);
...
票数 1
EN

Stack Overflow用户

发布于 2016-02-18 05:35:10

正如zangw在注释中所提到的,这个脚本实际上是有效的。我的错是我的test.png是空白的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35472515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档