創建並運行 Koa.js 專案
什麼是 Koa.js?
Koa.js 是一個由 Express.js 團隊開發的下一代 Node.js Web 框架。它旨在成為一個更小、更富表現力和更強大的基礎,用於構建 Web 應用和 API。Koa.js 利用了現代 JavaScript(如 async/await)的優勢,使得編寫中間件和處理請求變得更加簡潔和直觀。
Koa.js 的主要特性和優勢
- 簡潔和現代:利用 async/await 語法,使得處理異步操作更加直觀。
- 中間件機制:Koa.js 通過中間件堆棧來處理請求和響應,提供了極大的靈活性。
- 輕量級:核心非常小,只包含最基本的功能,可以根據需求添加中間件。
- 高性能:由於其簡潔的設計和現代的異步處理方式,Koa.js 的性能非常高。
使用 Koa.js,可以幫助開發者快速構建高性能的 Web 應用和 API。
使用 ServBay 創建並運行 Koa.js 專案
在這篇文章中,我們將使用 ServBay 提供的 Node.js 環境來創建並運行一個 Koa.js 專案。我們將使用 ServBay 的『主機』功能來設置 Web 伺服器,並通過反向代理來實現專案的訪問。
創建 Koa.js 專案
初始化專案
首先,確保您已經安裝了 ServBay 提供的 Node.js 環境。然後,使用以下命令初始化一個新的 Koa.js 專案:
bashcd /Applications/ServBay/www mkdir servbay-koa-app cd servbay-koa-app npm init -y npm install koa
1
2
3
4
5創建應用文件
在專案根目錄下創建一個
app.js
文件,並添加以下代碼:javascriptconst Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = 'Hello ServBay!'; }); const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`Server running on port ${port}`); });
1
2
3
4
5
6
7
8
9
10
11
進入開發模式
運行開發伺服器
啟動開發伺服器並指定端口(例如:8585):
bashPORT=8585 node app.js
1這將會在本地啟動一個開發伺服器,並暴露端口 8585。
配置 ServBay 主機反向代理
使用 ServBay 的『主機』功能,通過反向代理來訪問開發伺服器。在 ServBay 的『主機』設置中,添加一個新的反向代理:
- 名字:
My first Koa.js dev site
- 域名:
servbay-koa-test.dev
- 主機類型:
反向代理
- IP:
127.0.0.1
- 端口:
8585
詳細設置步驟請參考添加Nodejs開發的網站。
- 名字:
訪問開發模式
打開瀏覽器,訪問
https://servbay-koa-test.dev
,實時查看專案。由於 ServBay 支持自定義域名以及免費的 SSL 證書,您將享受到更高的安全性。
部署生產版本
準備生產環境
確保您的專案在生產環境中可以正常運行。通常,Koa.js 專案不需要特別的構建步驟,但您可能需要設置一些環境變量或進行其他配置。
運行生產伺服器
啟動生產伺服器並指定端口(例如:8586):
bashPORT=8586 NODE_ENV=production node app.js
1配置 ServBay 主機反向代理
使用 ServBay 的『主機』功能,通過反向代理來訪問生產伺服器。在 ServBay 的『主機』設置中,添加一個新的反向代理:
- 名字:
My first Koa.js production site
- 域名:
servbay-koa-test.prod
- 主機類型:
反向代理
- IP:
127.0.0.1
- 端口:
8586
- 名字:
訪問生產模式
打開瀏覽器,訪問
https://servbay-koa-test.prod
,查看生產版本。通過 ServBay 的自定義域名和免費的 SSL 證書,您的網站將具有更高的安全性和可信度。
數據庫連接
ServBay 提供了 Redis、MariaDB、PostgreSQL 和 MongoDB 數據庫支持。以下是如何連接這些數據庫的示例。
連接 MongoDB
安裝
mongoose
:bashnpm install mongoose
1然後在專案中引入並連接:
javascriptconst mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/servbay-koa-app', { useNewUrlParser: true, useUnifiedTopology: true });
1
2
3連接 Redis
安裝
redis
:bashnpm install redis
1然後在專案中引入並連接:
javascriptconst redis = require('redis'); const client = redis.createClient(); client.on('error', function (err) { console.log('Error ' + err); });
1
2
3
4
5
6連接 MariaDB
安裝
mariadb
:bashnpm install mariadb
1然後在專案中引入並連接:
javascriptconst mariadb = require('mariadb'); const pool = mariadb.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_koa_app' }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB"); conn.release(); //release to pool }) .catch(err => { console.log("Not connected due to error: " + err); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16連接 PostgreSQL
安裝
pg
:bashnpm install pg
1然後在專案中引入並連接:
javascriptconst { Pool } = require('pg'); const pool = new Pool({ user: 'user', host: 'localhost', database: 'servbay_koa_app', password: 'password', port: 5432, }); pool.connect((err, client, done) => { if (err) throw err; console.log('Connected to PostgreSQL'); done(); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
通過以上步驟,您成功創建並運行了一個 Koa.js 專案,並使用 ServBay 提供的功能來管理和訪問您的專案,同時連接了多種數據庫。