正在生成 AI 摘要...
5/23 是 NodeSchool 全球性的 International Day,NodeSchool 顧名思義就是有線上教材讓大家學習,並且透過實體活動現場交流與指導。
報名碎碎念
一直對 nodeJS 這個領域感到好奇,畢竟使用 JavaScript 寫後端對我而言還是很神奇的。原本還在猶豫要不要參加這類的活動(因為實在很抗拒跟不認識的人交流 Q__ Q),但看到活動簡介有提到初學者也能來學習,所以還是咬牙報名了(反正真的不會我還有谷哥可以陪我呢 👋)
老實說,一開始到聚會場地的體驗不是很好,因為我第一次看到一個活動可以讓參加的人在外面等了快半小時(炸)。雖然活動說 10 點開始,但主辦單位也太準時 10 點才到了吧,通常辦活動不是都會提早半小時到嗎 ...,一堆人就像傻子一樣在門口發呆,幸好沒下雨天氣也堪稱涼爽,不然我臉應該會更臭 XD,而且我覺得大家脾氣都好好,大概只有我一個人臉上寫著「不耐煩」三個字吧 ...
但幸好,順利到了聚會場地後,這樣的不愉快就拋諸腦後了(我是情緒來得快去得也快的小屁孩兒)
NodeSchool 線上課程分享
我還蠻喜歡 NodeSchool 的線上課程設計,雖然對我來說還是很困難,但是有分「核心基礎」以及「選修課程」兩大塊,可以針對自己的需求做調整,而且超機車的是,第一道題目沒有做出來就不讓你進入下一題,超級討厭的啊 XDD,想跳題都無法(但當然還是有一些作弊的方法 :P,不過不建議啦!)
▼ 因為我很菜,所以只做了 javascripting 以及 learnyounode 這兩塊,而且 learnyounode 還沒做完 T __T
因為課程都是公開的,有興趣的朋友都可以直接到 NodeSchool 網站 npm 各個課程,雖然繁體中文翻譯尚未完全,但還有簡體中文可以參考,打開課程後直接切換語言就好了,非常方便啊 💗💗
雖然最後我也沒有做完,可是真的學到了很多東西,不過寫了一整天頭都暈了,到後面還一直騷擾在場的導師,也非常感謝 Dca 一直耐心的指導我,曾經一度不知道自己在寫什麼了啊。
▼ 認真學習 nodeJS 中
另外還聽到對面的說,今天收穫最豐盛的就是學到了 callback
,對面導師也說 callback 是 NodeJS 最精華的部分,但老實說我對 callback
還是似懂非懂的,以及非同步 / 同步這些概念,雖然 NodeSchool 有簡單提到,以及一再讓我們練習,但如果沒有人在旁邊指導與舉例,一個人對著 code 發呆半天大概也研究不出來吧 ...
一天將近 8 小時的學習,只做到建立 TCP server,可以印出當前時間就停了。
var server = net.createServer(function(c) { //'connection' listener c.on('end', function() { console.log('client disconnected'); }); c.write(y + '-' + m + '-' + dd + ' ' + h + ':' + s + '\n'); c.pipe(c); c.end(); });
雖然最後沒寫完,但是有寫到 connect Server 的部分還是蠻開心的,所以趁最後半小時,請 Dca 教我如何用 nodeJS 的樣版引擎,簡單的在 index.html 顯示當前時間。
樣版引擎
我使用的是一套還蠻漂亮的樣版引擎,叫做 swig (我很討厭跟 haml 類似的 jade,不喜歡省略括號)
$ npm install swig --save
var http = require("http"); var swig = require('swig'); var d = new Date(), y = d.getFullYear(), m = d.getMonth() + 1, dd = d.getDate(), h = d.getHours(), s = d.getMinutes(); var datetime = y + '.' + m + '.' + dd + ' ' + h + ':' + s; http.createServer(function(req,res){ swig.renderFile('index.html', { datetime: datetime }, function(err, renderedHTML) { res.setHeader("Content-Type", "text/html"); res.write(renderedHTML); res.end(); }); }).listen(8888);
記得要加上 .setHeader("Content-Type", "text/html");
,這樣才可以正常顯示 HTML tag。
<h1>{{ datetime }}</h1>
終於學會 1% 的 nodeJS 啦,還可以在 HTML 顯示資料,真的非常有成就感,雖然只是一個弱弱的時間 XDDDD。希望以後有機會可以自己練習怎麼寫留言板,寫一個留言板一直是我的夢想啊!! 希望可以實現它 ~
最後放上 Node School 的相關資料,有興趣的朋友可以參考看看!不知道以後 Node 社團還會不會繼續辦這樣的活動,不過很開心這一次參與了 🙂