提取控制器模块
如果所有的逻辑都在router
中写的话,会显得很乱也不好维护,所以我们可以将逻辑抽离出来,放到controller
文件夹中,同样根据接口的功能创建不同的文件来分模块处理。
项目结构,如下图:
router文件夹中的users.js, 内容如下:
const express = require('express');
const router = express.Router();
const userContr = require('../controller/users')
// 登录用户
router.post('/users/login', userContr.login)
// 注册用户
router.post('/users', userContr.register)
// 获取当前用户
router.get('/user', userContr.getCurrentUser)
// 更新当前用户
router.put('/user', userContr.updateCurrentUser)
module.exports = router
controller文件夹中的users.js, 内容如下:
// 用户登录
exports.login = async (req, res, next) => {
try {
res.send('post /users/login')
} catch (err) {
next(err)
}
}
// 用户注册
exports.register = async (req, res, next) => {
try {
res.send('post /users')
} catch (err) {
next(err)
}
}
// 获取当前用户
exports.getCurrentUser = async (req, res, next) => {
try {
res.send('get /user')
} catch (err) {
next(err)
}
}
// 更新当前用户
exports.updateCurrentUser = async (req, res, next) => {
try {
res.send('put /user')
} catch (err) {
next(err)
}
}