目錄
一、前言
上一篇文章我們講了相對安全的express路由模塊的封裝以及掛載路由的一些思路分析總結,詳細可查看博文:Node.js後端開發 - 進階篇 #9 express框架之路由模塊的封裝2(相對安全)這篇文章我們將介紹如何封裝 handler.js 業務模塊
二、封裝 handler.js 業務模塊
步驟1:寫業務模塊 handler.js
上篇文章我們講到路由模塊的封裝,但我們路由模塊 router.js 文件只負責路由判斷,不要寫具體的業務處理代碼。我們再新建一個 handler.js 來處理業務
//業務模塊
//暴露函數,並且需要傳入req、res參數,
//才能處理相應的業務,向用戶響應
module.exports.index = function (req, res) {
res.send('這個是 handler.index 方法中的代碼');
};
步驟2:路由模塊 router.js 調用
寫好上面的代碼以後,我們需要在路由模塊 router.js 裏面進行調用,我們這樣調用就行
router.get('/', function (req, res) {
handler.index(req, res);
});
它有一種更簡便的寫法,可以這樣寫
router.get('/', handler.index);
router.js 的具體代碼如下:
//路由模塊:主要負責路由判斷
//1. 創建一個 router 對象(router 對象既是一個對象,也是一個函數)
var express = require('express');
var router = express.Router();
//加載業務模塊
var handler = require('./handler.js');
//2. 通過 router 對象設置(掛載)路由
// router.get('/', function (req, res) {
// handler.index(req, res);
// });
// 理解的時候需要注意,不需要傳req、res參數
// 因爲 handler.index = function (req, res) { };
// 所以可以寫成 handler.index
router.get('/', handler.index);
router.get('/index', handler.index);
//3. 返回 router 對象
module.exports = router;
步驟3:其他代碼貼上
主模塊app.js
// app.js 模塊職責:負責啓動服務
//1. 加載 express 模塊
var express = require('express');
//加載 config.js 模塊
var config = require('./config.js');
//加載路由模塊
var router = require('./router.js');
//2. 創建 app 對象
var app = express();
//3. 啓動路由
// 設置 app 和 router 相關聯
// 這個 router,它既是一個對象也是一個函數
// 這個函數,它也是一箇中間件
//app.use('/', router);
app.use(router);//與上面的等價
//4. 啓動服務
app.listen(config.port, function () {
console.log('http://localhost:' + config.port);
});
配置模塊 config.js
// 配置模塊: 主要職責是負責保存項目中的配置信息
module.exports = {
port : 3000
};
三、最終效果
啓動運行程序,然後我們在谷歌瀏覽器中輸入地址:http://localhost:3000 或 http://localhost:3000/index