課程目標

  • 用 node 寫入檔案內容

課程內容

來學習一下用 node 寫入檔案的方法

學會這方法,可以用 node 寫腳本處理工作上的文書瑣事


建立 write-my-name.js 程式,裡面輸入

var fs = require('fs');

const readline = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});

readline.question('請問您的大名?\n', function (answer) {
  fs.writeFile('my-name.txt', answer, function (err) {
    console.log('儲存成功。');
    process.exit(0);
  });
});

然後去終端機輸入

node write-my-name.js

你會看到終端機要求你輸入內容,接著會去更新文字檔內容!


第一段的 readline 模組,是處理 輸入/輸出 資訊的模組,後面要呼叫 createInterface 並且用全域變數 process 來設定輸入、輸出來源

照做就好,背後意義不用細究,能用就好,有興趣自行 google

readline.question 從終端機請求用戶輸入內容,\n 是換行字元,讓畫面更好看而已

注意 readline.question 後面還是把函式當參數傳,也就是依然採用「非同步程式設計」

很怪、很醜,對嗎?我同意,這語法設計實在意義不明

又不是在等待 AJAX 回應的同時,用戶可以先做別的事情

這邊就是要等用戶輸入完內容,程式往下走才有意義呀!

後面會教你如何改寫成「同步程式設計」,先照做就好

課後作業

接續前一課的作業,現在來寫「新增」功能

請建立一個 create.js 檔案

使用者輸入 node create.js 之後,終端機會詢問

您要新增什麼待辦事項?

使用者可以輸入內容,接著終端機會顯示

新增事項:XXXXXX

打開 todos.json 查看,會看到剛剛輸入的項目出現在裡面

完成以上任務,你就完成這次的課程目標了!


歡迎將作業成果,在下方留言,跟大家分享,讓大家給你一些回饋!

可以將每課學到的觀念、關鍵字,丟到網路上去搜尋、研究一下!

發問請在「討論專區」為主,或者分享學習筆記、寫學習心得!

貼文都會出現在個人檔案頁面,成為學習歷程、部落格紀錄!

未來面試時,分享給面試官看,會讓人知道你的積極程度!


共有 4 則留言

作業繳交
github

按讚的人:

github
一開始直直寫下去結果弄不出來
才發現所有操作都是async的...

按讚的人:

作業,再麻煩站長了,謝謝!

按讚的人: