建立並執行 Express.js 專案
什麼是 Express.js?
Express.js 是一個基於 Node.js 的快速、開放、極簡的 Web 應用框架。它提供了一系列強大的功能,用於構建單頁、多頁和混合型 Web 應用。Express.js 是 Node.js 生態系統中最受歡迎的框架之一,因其簡潔和靈活的設計而深受開發者喜愛。
Express.js 的主要特性和優勢
- 簡潔和靈活:Express.js 提供了簡潔的 API 和靈活的中介軟體機制,使得開發 Web 應用變得非常高效。
- 中介軟體:支持多種中介軟體,可以輕鬆處理請求和回應。
- 路由:強大的路由功能,可以根據不同的 HTTP 方法和 URL 路徑處理請求。
- 整合性強:可以與各種模板引擎、資料庫和其他 Node.js 模組無縫整合。
- 社群和生態系統:擁有龐大的社群和豐富的第三方中介軟體和插件支持。
使用 Express.js,可以幫助開發者快速構建高性能的 Web 應用和 API。
使用 ServBay 建立並執行 Express.js 專案
在這篇文章中,我們將使用 ServBay 提供的 Node.js 環境來建立並執行一個 Express.js 專案。我們將使用 ServBay 的『主機』功能來設定 Web 伺服器,並透過反向代理來實現專案的訪問。
建立 Express.js 專案
初始化專案
首先,確保您已經安裝了 ServBay 提供的 Node.js 環境。然後,使用以下命令初始化一個新的 Express.js 專案:
bashcd /Applications/ServBay/www npx express-generator servbay-express-app
1
2安裝依賴
進入專案目錄並安裝依賴項:
bashcd servbay-express-app npm install
1
2
修改 Express.js 專案輸出内容
修改
routes/index.js
檔案打開
routes/index.js
檔案,修改内容使網頁輸出 "Hello ServBay!":javascriptvar express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.send('Hello ServBay!'); }); module.exports = router;
1
2
3
4
5
6
7
8
9
進入開發模式
執行開發伺服器
啟動開發伺服器並指定埠(例如:8585):
bashPORT=8585 DEBUG=servbay-express-app:* npm start
1這將會在本地啟動一個開發伺服器,並暴露埠 8585。
配置 ServBay 主機反向代理
使用 ServBay 的『主機』功能,通過反向代理來訪問開發伺服器。在 ServBay 的『主機』設定中,新增一個新的反向代理:
- 名稱:
My first Express.js dev site
- 域名:
servbay-express-test.dev
- 主機類型:
反向代理
- IP:
127.0.0.1
- 埠:
8585
詳細設定步驟請參考添加Nodejs開發的網站。
- 名稱:
訪問開發模式
打開瀏覽器,訪問
https://servbay-express-test.dev
,即時查看專案。由於 ServBay 支持自訂域名以及免費的 SSL 憑證,您將享受到更高的安全性。
部署生產版本
準備生產環境
確保您的專案在生產環境中可以正常運行。通常,Express.js 專案不需要特別的構建步驟,但您可能需要設定一些環境變數或進行其他配置。
執行生產伺服器
啟動生產伺服器並指定埠(例如:8586):
bashPORT=8586 NODE_ENV=production npm start
1配置 ServBay 主機反向代理
使用 ServBay 的『主機』功能,通過反向代理來訪問生產伺服器。在 ServBay 的『主機』設定中,添加一個新的反向代理:
- 名稱:
My first Express.js production site
- 域名:
servbay-express-test.prod
- 主機類型:
反向代理
- IP:
127.0.0.1
- 埠:
8586
- 名稱:
訪問生產模式
打開瀏覽器,訪問
https://servbay-express-test.prod
,查看生產版本。通過 ServBay 的自訂域名和免費的 SSL 憑證,您的網站將具備更高的安全性和可信度。
資料庫連接
ServBay 提供了 Redis、MariaDB、PostgreSQL 和 MongoDB 資料庫支持。以下是如何連接這些資料庫的示例。
連接 MongoDB
安裝
mongoose
:bashnpm install mongoose
1然後在專案中引入並連接:
javascriptvar mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/servbay-express-app', { useNewUrlParser: true, useUnifiedTopology: true });
1
2
3連接 Redis
安裝
redis
:bashnpm install redis
1然後在專案中引入並連接:
javascriptvar redis = require('redis'); var client = redis.createClient(); client.on('error', function (err) { console.log('Error ' + err); });
1
2
3
4
5
6連接 MariaDB
安裝
mariadb
:bashnpm install mariadb
1然後在專案中引入並連接:
javascriptvar mariadb = require('mariadb'); var pool = mariadb.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'servbay_express_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然後在專案中引入並連接:
javascriptvar { Pool } = require('pg'); var pool = new Pool({ user: 'user', host: 'localhost', database: 'servbay_express_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
通過以上步驟,您成功建立並運行了一個 Express.js 專案,並使用 ServBay 提供的功能來管理和訪問您的專案,同時連接了多種資料庫。