Posts List

將Node核心模組Promisify化

將Node核心模組Promisify化

NodeJS的核心模組們一直以來都是以callback的形式來表現非同步行為,而callback會引起一個十分嚴重的callback hell問題。所幸在ES6時有了Promise的實作,大家將他視為是callback hell的一個解決之道,不過NodeJS可能礙於歷史因素,或者兼容性問題,並沒有將核心模組重新實作為Promise的形式,因此有了許多將Node核心模組轉換為Promise的方法,我們稱為Promisify,而在NodeJS 8.0.0的時候也有官方實作的Promisify方法可以使用

Koa教學(五)-Cookie&Session

Koa教學(五)-Cookie&Session

Cookie&Session Cookie Session Cookie&Session 終於來到了教學的尾聲,回顧我們從一開始從中間件直接回傳hello koa,緊接著我們加上了router以及logger,讓我們擁有管理URL的能力,再到使用模板引擎,動態渲染出網頁,上一章我們學會如何處理用戶傳送過來的表單。而我們這個章節將要介紹最後一個重要的環節,也就是如何將用戶瀏覽的狀態給儲存下來。 Http是一種無連接,無狀態性的協定。Server沒有任何記憶能力,因此他不知道這個Client是否曾經連線過,Server只在乎Client這個請求需要些什麼,我盡力傳送你想要的資訊給你,

Koa教學(四)-Parsing request

Koa教學(四)-Parsing request

Pasing request Get - QueryString parsing 在Controller中爬取QueryString looper模板 POST - Body Parsing 安裝koa-bodyparser 使用koa-bodyparser Tracecode Pasing request 這一個章節我們來聊聊如何讀取一個請求的內容。 撰寫網站的時候,我們會希望前端使用者能傳遞一些請求,後端伺服器讀取了使用者的請求後做出相對應的服務,達到互動的效果。例如:使用者輸入帳號密碼登入網站,或者讓前端使用者可以有管道可以查詢後端的資料庫等等。 在前端我們可以透過表單來達到這個目的,或者也可以使用AJAX的方式來達成。而請求送出後,伺服器能夠

Koa教學(三)-Views&Static

Koa教學(三)-Views&Static

Views&Static 這章節的教學將會包含如何使用使用views中間件渲染模板,動態的產生網頁內容。另一個主題是設定static中間件,讓我們可以簡單的傳送一些靜態物件,如圖片、音效、影片、腳本等等。 Views 前面幾個教學到現在我們總是簡單的回傳一些字串給前端 router.get('/', async (ctx) => { ctx.body = "<h1>Hello Koa</h1>"; }); 在第一章的時候,我們也曾經使用readFile的方式,載入預寫好的html檔案,但是這種方式難以架構一個具有大型規模的網站。我們網頁上的資訊必須動態產生,如先讀取資料庫後動態的調整頁面的內容。如果我們用傳統的方式的話,光是字串處理的時間就會消磨掉一

Koa教學(二)-Routing&Logger

Koa教學(二)-Routing&Logger

Routing路由&logger記錄 Routing 安裝koa-router 使用koa-router URL parameters Logger 安裝koa-logger 使用koa-logger Routing路由&logger記錄 Routing與logger在網站的設計上是十分重要的兩個部分。Routing控制了網站URL對應到該執行的function,良好設計的routing不僅可以讓開發者們對於代碼的維護更加容易,也讓使用者可以預期網站的行為,加強SEO等等。至於Logger則是我們觀測使用者行為以及檢測程式bug一個良好的管道

Koa教學(一)-支援最新ECMAScript的MVC框架

Koa教學(一)-支援最新ECMAScript的MVC框架

What is Koa? Koa vs Express vs Connect 環境架設 Hello World Async function 使用Async function 不使用Async function Middleware中間件 What is Koa? 相信很多人對NodeJS的第一次接觸就是Http Server,Koa是一個十分新潮的Http框架,他支援ES6甚至ES7的新特性,更容易debug,表達力更加強大,程式碼更加精簡。 相信很多人使用過Express。Express也是許多NPM套件的依賴,社群也很活躍,幾乎遇到的問題都已經有人遇過了,因此可以很容易找到解答。Koa是由Express的開發者另起爐灶做出來的框架,因為兩者在根本的概念上差異