node.js - Express + Node : file downloaded through response. download() 与原始文件相比大小不同

标签 node.js express

我正在使用 Node + Express 开发一个简单的网络服务器。让我解释一下我遇到奇怪问题的部分。

使用外部脚本(dropbearkey)我生成一个 key 对,生成的私钥存储在服务器的文件系统上。目的是发送此私钥作为对客户端请求的响应。 Client是一个使用Electron开发的应用程序。

为此,我使用以下内容:

response.download(filepath);
上面一行中的

filepath 是服务器文件系统上生成的私钥的路径。这是一个二进制文件。

问题是,客户端下载的文件比原始文件大。知道为什么吗?我在这里做错了什么吗?

提前致谢!

Original File (on Server)

Downloaded File (on Client)

最佳答案

原始文件(错误地)被视为 UTF-8 编码文件。

我可以像这样从原始文件创建下载的文件:

const fs = require('fs');
process.stdout.write( fs.readFileSync('original_file').toString() );

检查客户端以确保它不会将数据解释为字符串,而是解释为(二进制)缓冲区。

关于node.js - Express + Node : file downloaded through response. download() 与原始文件相比大小不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45997852/

相关文章:

node.js - Node.js 应用程序中的类型错误

node.js - 来自 node.js,哪个更快,shell grep 还是 fs.readFile?

javascript - 请求的资源 : Mean stack 上不存在 'Access-Control-Allow-Origin' header

angularjs - Angular 和 Node 路由

node.js - express.Router 和 app.get 的区别?

javascript - React 的 Express POST 请求返回空正文

angularjs - 使用谷歌登录登录我的网站后获取谷歌帐户信息(使用卫星库登录)

javascript - 数组函数不是函数

node.js - 无法构建此 Angular 项目

angularjs - 用于大型项目的 Angular 2 或 NodeJs/Express