Node.js中Buffer(bitmap)弃用后文件转Base64的代码改写方案
修复方案
旧代码中使用的new Buffer()构造函数已在Node.js v6及后续版本中标记为废弃,该API因为语义不清晰、存在内存安全风险被官方弃用,你当前的场景直接使用官方推荐的Buffer.from()静态方法替换即可,功能和原有逻辑完全一致。
修改后的完整可运行代码:
const fs = require('fs'); // 编码文件为base64字符串的函数 function base64_encode(file) { const bitmap = fs.readFileSync(file); // 替换废弃的new Buffer调用为Buffer.from return Buffer.from(bitmap).toString("base64"); } const base64String = base64_encode("Document.png");
可选简化写法
fs.readFileSync原生支持直接指定返回编码,不需要手动做Buffer转字符串的操作,性能更优,写法更简洁:
const fs = require('fs'); function base64_encode(file) { // 读取文件时直接指定base64编码,直接返回目标字符串 return fs.readFileSync(file, 'base64'); } const base64String = base64_encode("Document.png");
这种写法和原有逻辑的输出结果完全一致,没有兼容问题。
内容的提问来源于stack exchange,提问作者Niishaw
相关产品推荐
相关产品推荐

