express中的路由是为了处理不同的请求的,用来匹配请求地址,进行不同的处理

    使用
    基于,rest 风格的api接口(同一个接口命名,根据不同的请求类型,进行不同的处理)

    定义路由

    1. const express = require('express');
    2. const router = express.Router();
    3. const StudentServices = require('../../services/studentService')
    4. const { getResult } = require('./sendHelper')
    5. router.get('/', (req, res, next) => {
    6. StudentServices.findAndCountAll().then(resp => res.send(getResult(resp))).catch(err => next(err));
    7. })
    8. router.get('/:id', (req, res) => {
    9. res.send('查询单个学生')
    10. })
    11. router.post('/', (req, res, next) => {
    12. StudentServices.addStudent(req.body).then(resp => res.send(resp)).catch(err => next(err));
    13. })
    14. router.delete('/:id', (req, res) => {
    15. res.send('删除学生')
    16. })
    17. router.put('/:id', (req, res) => {
    18. res.send('修改学生')
    19. })
    20. module.exports = router;

    其中getResult是为了同一格式返回数据,代码如下

    1. exports.getResult = function (res) {
    2. return {
    3. code: 200,
    4. success: true,
    5. content: {
    6. total: res.total,
    7. data: res.data,
    8. }
    9. };
    10. };

    使用路由

    1. const express = require('express');
    2. const app = express();//创建一个以express应用,app实际上是一个函数,用于处理请求的函数
    3. const path = require('path');
    4. const rootPath = path.resolve(__dirname, '../public')
    5. /***
    6. * 发送请求的时,会根据请求的路径,从指定的目录中查找是否存在该文件,如果存在,则相应文件内容,而不再移交给后续的中间件,
    7. * 如果不存在文件,则直接移交给后续的中间件
    8. */
    9. app.use(express.static(rootPath, {
    10. index: 'index.html' //默认访问页面,默认值为index.html,可修改
    11. }));
    12. // app.use('/static', express.static(rootPath))// 也可以针对访问某个指定api路径,来标识需要 返回静态资源
    13. /***
    14. * 默认res无法解析post请求的参数,也就是请求体
    15. * 使用该中间件后表示,当Content-Type是"application/x-www-form-urlencoded",使用该中间件处理
    16. */
    17. app.use(express.urlencoded({
    18. extended: true
    19. }))
    20. /***
    21. * 默认res无法解析post请求的参数,也就是请求体
    22. * 使用该中间件后表示,当Content-Type是"application/json",使用该中间件处理
    23. */
    24. app.use(express.json())
    25. // 除了api请求
    26. app.use('/api/student', require('./api/student'))
    27. app.use(require('./errMiddleware')) // 处理所有的错误请求
    28. app.listen(12306, () => {
    29. console.log('server on 12306 has started')
    30. })
    • app.use('/api/student',require('./api/student')) 此处使用路由
    • 每次请求/api/student,路由会根据不同的请求类型,做不同的处理