You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js如何避免硬编码文件路径 实现代码共享时无需修改路径配置

方案1:使用相对路径自动匹配(适合固定和代码绑定的文本文件)

你只要把TextFile2.txt和你当前的JS代码文件放在同一个文件夹下,使用Node.js内置的__dirname变量(代表当前JS文件所在的目录)配合path模块拼接路径,就能完全避免硬编码绝对路径,不管把整个文件夹移到哪个位置、分享给任何人,都不需要修改路径代码。
修改后的完整代码如下:

const { readFileSync } = require('fs');
const path = require('path');

// 自动拼接当前JS文件所在目录下的TextFile2.txt路径
let file = path.join(__dirname, 'TextFile2.txt');

function countRepeatedWords(sentence) {
    const words = sentence.split(" ").filter(word => !!word);
    const wordMap = {};

    for (let word of words) {
        const key = word.trim().toLowerCase();
        const currentWordCount = wordMap[key];
        wordMap[key] = (currentWordCount ?? 0) + 1;
    }

    const sortedEntries = Object.entries(wordMap).sort(([a,], [b,]) => a.localeCompare(b));
    const sortedWordMap = Object.fromEntries(sortedEntries);

    // 注:原代码此处有两个连续return,第二个return永远不会执行,已删除冗余的return wordMap
    return sortedWordMap;
}

const words = readFileSync(file).toString();
console.log(countRepeatedWords(words));

方案2:使用命令行参数传入路径(适合每次统计不同文本文件的场景)

如果你需要经常更换不同的文本文件统计,不想每次改代码,可以直接从命令行参数读取路径,运行代码时指定要统计的文件即可:
修改路径部分的代码为:

let file = process.argv[2];

运行时在终端输入:
node 你的代码文件名.js 要统计的文本文件路径
分享给其他人使用时,对方也只需要在运行时指定自己的文件路径,不需要修改代码本身。

内容的提问来源于stack exchange,提问作者Eero Jyrgenson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 09:06:03