Node.js 如何从终端为代码选择文本文件

Node.js 如何从终端为代码选择文本文件,node.js,Node.js,最近,我一直在通过硬编码来读取文本文件 let filename = "input.txt" let data = fs.readFileSync(process.cwd() + "/" + filename).toString().split(/\r?\n/) 这让我想知道,在加载代码时,如何用在终端中指定的内容替换它 我的意思是写一些像: node index.js input.txt 。 有办法吗?您可以读取存储在进程中的输入参数。argv您要查找的是命令行参数 尝试使用以下单行创建t

最近,我一直在通过硬编码来读取文本文件

let filename = "input.txt"
let data = fs.readFileSync(process.cwd() + "/" + filename).toString().split(/\r?\n/)
这让我想知道,在加载代码时,如何用在终端中指定的内容替换它 我的意思是写一些像:

node index.js input.txt

有办法吗?

您可以读取存储在进程中的输入参数。argv

您要查找的是命令行参数

尝试使用以下单行创建test.js文件:

console.log(process.argv);
它的行为如下:

$ node test.js
> [ '/usr/bin/node', '/tmp/test.js' ]
$ node test.js some command line arguments
> [ '/usr/bin/node',
    '/tmp/test.js',
    'some',
    'command',
    'line',
    'arguments' ]
因此,对于使用文件名的案例,您需要:

const filename = process.argv[2] || 'defaultFileName.txt'
let data = fs.readFileSync(process.cwd() + "/" + filename).toString().split(/\r?\n/)