node.js基础教程(5):过滤器

要求

编写一个程序来打印出指定目录下的文件列表,并且以特定的文件名扩展名来过滤这个列表。命令行提供两个参数提,第一个是所给的文件目录路径(如:path/to/dir),第二个参数则是需要过滤出来的文件的扩展名。

举个例子:如果第二个参数是 txt,那么需要过滤出那些扩展名为 .txt的文件。

注意,第二个参数将不会带有开头的”.”。

需要在终端中打印出这个被过滤出来的列表,每一行一个文件。另外,必须使用异步的I/O 操作。


提示

fs.readdir() 方法接收两个参数:第一个是一个路径,第二个则是回调函数,这个回调函数会有如下特征:

function callback (err, list) { /* ... */ }

这里的 list 是一个数组,它所包含的元素是每个文件的文件名(字符串形式)。

fs模块API文档

node 自带的 path 模块也很有用,特别是它那个 extname 方法。

path模块API文档


代码

var fs = require('fs')
var path = require('path')

fs.readdir(process.argv[2], function (err, list) {
  list.forEach(function (file) {
    if (path.extname(file) === '.' + process.argv[3])
      console.log(file)
  })
})

一部由众多技术专家推荐, 帮你成为具有全面能力和全局视野工程师的进阶利器—— 《了不起的JavaScript工程师》出版了! 点击下方链接即刻踏上进阶之路!


亚里士朱德 wechat
更多WEB技术分享请订阅微信公众号“WEB学习社”