如何使用Koa搭建靜態資原始檔伺服器

搶手的哥發表於2018-04-17

1.node.js

Node.js 是一個基於 Chrome V8 引擎的 JavaScript 執行環境,執行Javascript的速度非常快,效能非常好。 Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。 Node.js 的包管理器 npm,是全球最大的開源庫生態系統。

2.Koa

Koa 就是一種簡單好用的 Web 框架。它的特點是優雅、簡潔、表達力強、自由度高。本身程式碼只有1000多行,所有功能都通過外掛實現,很符合 Unix 哲學。

本文講述瞭如何最簡單的使用Koa框架來實現靜態資源釋出伺服器。

3.準備工作

Koa 必須使用7.6以上版本的,如果你的版本低於這個要求,就要先升級Node,操作方法不多說了。

4.正式開搞

4.1 快速開啟http服務

在你的電腦上指定一個目錄,開啟終端cd到目錄,npm install 安裝依賴包,新建一個app.js 檔案,作為入口。在js檔案中寫如下程式碼

const Koa = require('koa');
const app = new Koa();

app.listen(3000);
複製程式碼

終端裡輸出 node app.js,一個服務就這麼執行了。是不是so easy! 開啟瀏覽器訪問http://loacalhost:3000,你會看到頁面顯示"Not Found",表示沒有發現任何內容。這是因為我們並沒有告訴 Koa 應該顯示什麼內容。

4.2 配置路由和靜態資源

網站一般都有多個頁面,多個頁面就需要路徑的路由。原生路由用起來不太方便,我們可以使用封裝好的koa-route模組。 如果網站提供靜態資源(圖片、字型、樣式表、指令碼......),為它們一個個寫路由就很麻煩,也沒必要。koa-static模組封裝了這部分的請求。

實際開發中,一個服務不僅能提供靜態資源訪問,也會提供一些介面給外界呼叫,為了統一管理這部分靜態資源,一般都放在根目錄public資料夾下。

其他的介面,就需要用路由統一分配路徑

// 0.匯入需要的資源包
const Koa = require('koa');
const app = new Koa();
const route = require('koa-route');
const serve = require('koa-static');

// 1.主頁靜態網頁 把靜態頁統一放到public中管理
const home   = serve(path.join(__dirname)+'/public/');
// 2.hello介面
const hello = ctx => {
  ctx.response.body = 'Hello World';
};

// 3.分配路由
app.use(home); 
app.use(route.get('/', hello));
app.listen(3000);
複製程式碼

這裡用到了一個node.js的全域性變數: __dirname,表示當前執行指令碼所在的目錄。然後把你之前寫好的靜態資源,比如html,css等檔案,統統放到根目錄的public資料夾下。執行一下app.js。在瀏覽器裡面輸如 http://loacalhost:3000 預設獲取載入public目錄下的index.html檔案,如果沒有,那就在瀏覽器埠號後面拼接路徑。比如 http://loacalhost:3000/index2.html

到此為止就可以訪問public下所有的靜態資源了。 鼓掌,散花!

相關文章