Express + Node:与原始文件相比,通过response.download()下载的文件大小不同

我正在使用Node + Express在简单的Web服务器上工作。 让我来解释一下我面临的一个奇怪的问题。

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

为了做到这一点,我使用了以下内容:

response.download(filepath); 

上面一行中的filepath是服务器文件系统上生成的私钥的path。 这是一个二进制文件。

问题是,与原始文件相比,客户端下载的文件的大小更大。 任何想法为什么? 我在这里做错了什么?

提前致谢!

原始文件(在服务器上)

下载的文件(在客户端上)

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

我可以从原来创build下载的文件,如下所示:

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

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