Node.js的fs模块如何将PathLike类型转换为普通路径?
Node.js中PathLike类型的Buffer转普通路径方案
Buffer类型的PathLike本质是UTF-8编码的路径字符串二进制形式,直接调用toString('utf8')方法即可转换为普通路径字符串。
Node.js官方fs模块内部处理Buffer类型路径时,也是默认按UTF-8编码解码为字符串,该转换逻辑和原生行为完全一致,没有兼容性问题。
你可以参考下面的通用转换函数实现全类型PathLike转普通路径:
import { fileURLToPath } from 'node:url'; /** * 统一将PathLike类型转换为普通路径字符串 * @param {import('node:fs').PathLike} path 待转换的路径 * @returns {string} 转换后的普通路径 */ function convertPathLikeToString(path) { // 字符串类型直接返回 if (typeof path === 'string') { return path; } // URL类型用fileURLToPath转换 if (path instanceof URL) { return fileURLToPath(path); } // Buffer类型调用toString按UTF-8解码 return path.toString('utf8'); }
内容的提问来源于stack exchange,提问作者Andrew Antsiferov
相关产品推荐
相关产品推荐

