Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – Nodejs二进制http流大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要从客户端(nodejs命令行)和服务器(表达nodejs)流式传输文件.

这是客户端:

var request = require('request');
var fs = require('fs');

// ...

  var readStream = fs.createReadStream(file.path);
  readStream.on('end',function() {
    that.emit('finished');
  });
  readStream.pipe(request.post(target));

// ...

这是服务器端:

var fs = require('fs');
var path = require('path');

// ...

    app.post('/:filename',function(req,res) {
      req.setEncoding('binary');
      var filename = path.basename(req.params.fileName);
      filename = path.resolve(desTinationDir,fileName);
      var dst = fs.createWriteStream(fileName);
      req.pipe(dst);
      req.on('end',function() {
        res.send(200);
      });
    });

// ...

一切正常,文件在服务器端正确保存……但它们比源文件大50%左右.我试图看到两个文件与hexdump之间的区别,服务器端文件有相似的内容,但有时为0xC2.我想这与编码有关.

解决方法

不要调用req.setEncoding(‘binary’).

这将是convert every single chunk into strings,主要用于从流中读取字符串.当您将请求直接传递给文件时,您不需要这样做.

大佬总结

以上是大佬教程为你收集整理的node.js – Nodejs二进制http流全部内容,希望文章能够帮你解决node.js – Nodejs二进制http流所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。