如何在node.js中将.json文件名作为命令行参数传递

3

我使用命令node app.js运行app.js文件。

它执行了const inputData = require('./input.json');

是否可以从命令行将文件名作为参数传递给const inputData = require('./file.json');呢?我的意思是:

node app.js file.json

我对这个技巧完全不熟悉,没有理论基础。我应该从哪里开始学习?非常感谢您的帮助。

非常感谢,


1
你可以使用 process.argv 来访问命令行参数 https://dev59.com/OW855IYBdhLWcg3wbjrO#4351548。然后只需使用正确的索引来调用 require 即可。 - ValLeNain
可能是重复的问题,参考如何传递命令行参数? - insert_name_here
1个回答

5

您可以使用process.argv来访问参数,以及fs.readFilefs.readFileSync来读取文件内容。

const fs = require('fs');

// Non-blocking example with fs.readFile
const fileNames = process.argv.splice(2);

fileNames.forEach(fileName => {
    fs.readFile(fileName, 'utf-8', (error, data) => {
        if (error) throw error;
        console.log(fileName, data);
  });
});

// Blocking example with fs.readFileSync
const fileName = fileNames[0];
console.log(fileName, fs.readFileSync(fileName, 'utf-8'));

为什么我不能将 console.log(fileName, fs.readFileSync(fileName, 'utf-8')); 放入 const 中? - o.O

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接