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下所有的靜態資源了。 鼓掌,散花!