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,而是(二进制)缓冲区。