在我们使用express的时候,如果不作模块化处理,那么就需要在app.js中写入大量的代码。如果将所有的路由都挂载到app服务器对象上的话,随着路由的不断增多,app.js中的代码量会不断增多,那么将会使得后期我们对app.js的维护难以进行,同时这也十分不利于我们多人合作编码。
此时,我们就需要将路由的挂载单独封装到一个模块router.js当中,在该模块中,只需将所有的路由都挂载到一个路由对象上,再将这个对象导出,最后只需在app.js将其导入,并使用app.use()进行全局注册,即可实现路由的模块化处理。这样做一定程度上减少了app.js中的代码量,减轻了后期对于app.js维护的负担。
1.创建路由模块 router.js
1.1导入exprss
const express = require('express')
1.2创建路由对象
const router = express.Router()
1.3挂载路由
这里我挂载两种请求方式的路由,分别是get和post
router.get('/userinfo', (req, res) => {
res.send({
status: 0,
message: 'GET 请求成功!',
data: {
name: 'zhangsan',
age: 18,
gender: '男'
}
})
})
router.post('/aboutme', (req, res) => {
res.send({
status: 0,
message: 'POST 请求成功!',
data: {
myname: 'aFlowerDemon',
myage: 21,
mygender: '男'
}
})
})
1.4导出路由对象
module.exports = router
2.创建服务器模块 app.js
2.1导入express
const express = require('express')
2.2创建服务器对象
const app = express()
2.3导入路由模块
const router = require('./router')
2.4全局注册路由
这里我设置了一个访问前缀,在访问时需要加上/api访问前缀才可访问
例如:http://127.0.0.1/api/userinfo
app.use('/api', router)
2.5启动服务器
app.listen(80, () => {
console.log('express server running at http://127.0.0.1');
})
3.客户端请求结果
这里我使用的是postman对服务进行请求,结果如下:
GET请求结果:
POST请求结果