13.接口项目:提取控制器模块

46 阅读1分钟

提取控制器模块

如果所有的逻辑都在router中写的话,会显得很乱也不好维护,所以我们可以将逻辑抽离出来,放到controller文件夹中,同样根据接口的功能创建不同的文件来分模块处理。

项目结构,如下图:

image.png

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)
    }
}