## 要求
編寫一個程序,執行一個異步的對文件系統的操作:讀取一個文件,并且在終端(標準輸出stdout)打印出這個文件中的內容的行數。類似于執行 cat file | wc -l 這個命令。 所要讀取的文件的完整路徑會在命令行第一個參數提供。
## 提示
解決這個問題將需要用到Node.js最鮮明的風格的方式:異步。
‘’’fs.readFile()’’’方法可以滿足這個需求,這需要從傳入的[回調函數](https://github.com/maxogden/art-of-node#callbacks)中去收集數據(這些數據會作為第二參數傳遞給回調函數),而不是使用方法的返回值。
記住,Node.js 回調函數都有像如下所示的特征:
~~~
function callback (err, data) { /* ... */ }
~~~
可以通過檢查第一個參數的真假值來判斷是否有錯誤發生。如果沒有錯誤發生,第二個參數將獲取到一個Buffer對象。和 readFileSync() 一樣,可以傳入 ‘utf8 ‘ 作為它的第二個參數,然后把回調函數作為第三個參數,這樣,得到的將會是一個字符而不是 Buffer。
[fs模塊API文檔](https://nodejs.org/api/fs.html)
## 代碼
~~~
var fs = require('fs');
fs.readFile(process.argv[2], function(err,data){
if(err) throw err;
console.log(data.toString().split('\n').length-1);
});
~~~