我正在完成“learnyounode”模块的练习5。
这是功能和解决方案:
var fs = require('fs'),
path = require('path');
fs.readdir(process.argv[2], function (err, list) {
if(err){throw err}
list.forEach(function (file) {
if (path.extname(file) === '.' + process.argv[3])
console.log(file)
});
});
现在我自己没有得到解决方案,因为我很难绕过这个请求:
创建一个程序,打印给定目录中的文件列表, 通过文件的扩展名过滤。您将获得一个 目录名称作为程序的第一个参数(例如 '/ path / to / dir /')和第二个过滤的文件扩展名 论点。
例如,如果您将'txt'作为第二个参数,则需要将列表过滤为仅以.txt结尾的文件。
请注意,第二个参数不会带有前缀'。'。请记住,程序的第一个参数不是process.argv数组的第一个值,因为前两个 节点为系统信息保留值。
这是否意味着如果实际上正在访问该程序,就像在终端/命令提示符中那样process.argv
将接收的内容是什么?
0: /usr/local/bin/node
1: /Users/me/work/node/filter-list.js
2: '/path/to/dir/'
3: txt