nodejs 非utf8编码文件下载 得到的文件大小错误 结果异常

我用express搭建了一个node的后台
把file.dat文件放在/public/files目录下
public用express的route方法设置了公开路径
这个目录下的文件在get请求下会发送文件响应

app.route('/:url(files|images)/*')
    .get((req, res) => {
        res.sendFile(path.resolve(app.get('public') + req.url));
    });
    

现在遇到的问题是 file.dat 这种格式的二进制文件 原文件是1.8M大小,从前端请求响应的文件是 3.1M大小。

我尝试了将静态文件放在静态公开目录,前端直接通过url下载,不做拦截,也不用sendFile的方法,纯静态资源请求,也是这样。文件编码是 latin1。 服务器环境是linux debian,nginx 1.6.2。 node 4.4.3稳定版。

我想知道文件请求响应的过程中,哪些地方会引起数据包改变。还有咋能解决这个问题。

阅读 3.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题