來學習一下用 node 讀取檔案的方法
學會這方法,可以用 node 寫出簡易的檔案內容分析程式
建立一個 my-name.txt
文字檔,在裡面輸入你的名字
然後建立 read-my-name.js
程式,裡面輸入
var fs = require('fs');
fs.readFile('my-name.txt', function(err, data) {
console.log("您好," + data);
process.exit(0);
});
然後去終端機輸入
node read-my-name.js
你會看到一段打招呼的訊息!
讓我們逐行說明一下
var fs = require('fs');
這是載入「檔案系統模組」的意思,fs
是 file system
的縮寫
readFile
函式,第一個參數是檔案名稱,第二個參數是「一個函式定義」
看起來有點怪,其實是「非同步程式設計」的關係
之前在學網頁元素的事件處理時,就是用「非同步」程式設計處理
也就是我不確定「點擊」事件何時會發生,但我先「綁定」好事件發生時要做的任務
還有在網頁呼叫 AJAX 時也是,我不確定「主機回應」何時會拿到,但我先「綁定」好拿到之後要做的任務
這邊 fs
的意思就是:我不確定何時會「檔案讀取完畢」,但我先「綁定」好讀取完畢之後,要做的任務
看起來很怪、很醜,這種設計的意義不明,對嗎?我也覺得!後面會教你如何改寫成「同步程式設計」,先照做就好
--
console.log
是印出訊息到終端機(語法就跟在瀏覽器環境一樣!)
process.exit(0);
是結束程式的意思。那個 process
是代表當前 node 程式的全域變數
在瀏覽器裡面,無法去操作「檔案系統模組」,否則也太可怕,每個人上網時,都能用 js 亂改電腦上的檔案,資安大問題!
在瀏覽器裡面,也沒有 process
這個全域變數
用 node 跑完這段程式,你應該會發現,這段程式拿到網頁環境,是無法執行的!
在瀏覽器、node 跑 js 程式,有很多相似,也有很多相異之處,希望你慢慢抓到兩者的感覺!
讓我們嘗試開發一個 CLI 版本的待辦管理工具
請建立一個檔案 todos.json
並放入以下內容
[
{
"title": "去操場跑步"
},
{
"title": "去市場採購"
},
{
"title": "找朋友吃飯"
}
]
然後建立一個 read.js
檔案
使用者輸入 node read.js
之後,終端機會去讀取 todos.json
並且顯示
您的待辦事項:
#0 去操場跑步
#1 去市場採購
#2 找朋友吃飯
完成以上任務,你就完成這次的課程目標了!
交作業的方法:
方法一
直接截圖視窗內容,上傳到留言區
方法二
開一個新資料夾,用 git 初始化這個資料夾
接下來的作業,都放在這個資料夾,然後上傳 github
然後把 github 專案連結,貼到留言區即可
歡迎將作業成果,在下方留言,跟大家分享,讓大家給你一些回饋!
可以將每課學到的觀念、關鍵字,丟到網路上去搜尋、研究一下!
發問請在「討論專區」為主,或者分享學習筆記、寫學習心得!
貼文都會出現在個人檔案頁面,成為學習歷程、部落格紀錄!
未來面試時,分享給面試官看,會讓人知道你的積極程度!
作業繳交
github