【发布时间】:2016-02-17 21:22:14
【问题描述】:
我正在使用 node.js 列出 txt 文件中的项目。我让它从终端打印出来,但是我希望它接受更多参数,到目前为止它接受它们但只打印一个(最后一个)我希望它打印参数中的每个项目并将它们列出。
// Make sure we got a filename on the command line.
if (process.argv.length < 3) {
console.log('Usage: node ' + process.argv[1] + ' FILENAME');
process.exit(1);
}
// Read the file and print its contents. And split into an array after each space
var fs = require('fs') , filename = process.argv[2];
var array = fs.readFileSync('dependencies.txt').toString().split('\n');
//console.log(array[0]);
if(process.argv.length >= 3){
for(var j = 3; j < process.argv.length; j++)
var test = process.argv[j];
functionName(test);
}
function functionName(test){
for(var i = 0; i < array.length; i++ ){
var pattern = /([^\s]+)/g;
var line = pattern.exec(array[i]);
if(line && test == line[0]){
console.log(array[i]);
}
}
}
//fs.readFile(filename, 'utf8', function(err, data) {
// if (err) throw err;
// console.log('OK: ' + filename);
// console.log(data)
//});
【问题讨论】:
-
您是否希望为该循环的每次迭代调用一次
functionName?因为那不是你在做什么。而functionName(test);在循环完成后发生。 -
是的,我需要它来运行并打印在终端中调用的每个项目
-
所以当你有一个多行的for循环时,请使用正确的
{}。或通过删除var test行使其成为单行。 -
我现在找到你了。谢谢老兄,我一直盯着这个看很久了
标签: javascript node.js terminal