Node.js后端开发 - 进阶篇 #10 express框架之封装handler.js模块

159 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 ​

目录

一、前言

二、封装 handler.js 业务模块

步骤1:写业务模块 handler.js 

步骤2:路由模块 router.js 调用

步骤3:其他代码贴上

主模块app.js

配置模块 config.js

三、最终效果


一、前言

上一篇文章我们讲了相对安全的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 对象既是一个对象,也是一个函数) //加载业务模块

//2. 通过 router 对象设置(挂载)路由

//3. 返回 router 对象


var express = require('express');
var router = express.Router();
var handler = require('./handler.js');


// 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);


module.exports = router;

步骤3:其他代码贴上

主模块app.js

// app.js 模块职责:负责启动服务

//1. 加载 express 模块

//加载 config.js 模块

//加载路由模块

//2. 创建 app 对象

//3. 启动路由

// 设置 app 和 router 相关联

// 这个 router,它既是一个对象也是一个函数

// 这个函数,它也是一个中间件

//4. 启动服务


var express = require('express');

var config = require('./config.js');

var router = require('./router.js');


var app = express();


//app.use('/', router);
app.use(router);//与上面的等价



app.listen(config.port, function () {
    console.log('http://localhost:' + config.port);
});

配置模块 config.js

// 配置模块: 主要职责是负责保存项目中的配置信息



module.exports = {
    port : 3000
};

三、最终效果

启动运行程序,然后我们在谷歌浏览器中输入地址:http://localhost:3000  或  http://localhost:3000/index

​编辑