Node.js path.format()官方示例与实际运行结果不符原因问询
问题解答
结果差异原因
path.format()拼接文件名时,ext字段需要自带前置.,你传入的ext: 'txt'会直接和name: 'test'拼接为testtxt,而非预期的test.txt。path.format()对root和dir字段的处理逻辑存在明确差异:- 传入
dir字段时,Node.js会自动在目录路径和文件名之间追加对应平台的路径分隔符 - 仅传入
root字段时,会直接将root内容与文件名拼接,不会额外添加路径分隔符
你使用的示例代码中传入的是root: '/Users/joe'而非dir: '/Users/joe',因此会直接和拼接后的文件名testtxt连在一起,最终得到/Users/joetesttxt。
- 传入
示例是否存在错误
该文档示例确实存在错误,一共两处参数问题:
- 误用
root字段替代了应该使用的dir字段 ext字段缺少必要的前置.
正确的代码写法如下:
require('path').format({ dir: '/Users/joe', name: 'test', ext: '.txt' }) // 输出:/Users/joe/test.txt
内容的提问来源于stack exchange,提问作者Mohsen Movahed
相关产品推荐
相关产品推荐

