zoukankan      html  css  js  c++  java
  • koa 路由模块化(一)

    1.项目目录

    2.入口文件

    根目录/app.js

    /**
     * koa 路由模块化
     */
    const Koa = require('koa');
    const router = require('koa-router')();
    // 引入子模块(子路由)
    const admin = require('./routes/admin.js');
    const api = require('./routes/api.js');
    
    // 实例化
    var app = new Koa();
    
    // 配置路由
    router.get('/', (ctx) => {
      ctx.body = '这是一个首页';
    })
    
    /**
     * /admin 配置子路由(层级路由)
     * /admin/user
     */
    router.use('/admin', admin.routes());
    
    /**
     * /api/newslist 新闻列表的api
     */
    router.use('/api', api); /*在模块里面暴露路由并且启动路由*/
    
    // 启动路由
    app.use(router.routes()).use(router.allowedMethods())
    
    app.listen(8008);

    3.层级路由

    根目录/routes/admin.js

    const router = require('koa-router')();
    
    router.get('/', (ctx) => {
      ctx.body = '后台管理系统首页';
    })
    
    router.get('/user', (ctx) => {
      ctx.body = '用户管理';
    })
    
    router.get('/focus', (ctx) => {
      ctx.body = '轮播图管理';
    })
    
    router.get('/news', (ctx) => {
      ctx.body = '新闻管理';
    })
    
    module.exports = router;

    根目录/routes/api.js

    const router = require('koa-router')();
    
    router.get('/', (ctx) => {
      ctx.body = {
        "title": "这是一个api"
      }
    })
    
    router.get('/newslist', (ctx) => {
      ctx.body = {
        "title": "这是一个新闻接口"
      }
    })
    
    router.get('/focus', (ctx) => {
      ctx.body = {
        "title": "这是一个轮播图的api"
      }
    })
    
    module.exports = router.routes();

    .

  • 相关阅读:
    推送消息为什么使用RocketMQ,而不使用Kafka?
    com.google.common.collect.Lists.addAll()空指针原因分析
    AQS原理
    ReentrantLock-加锁
    ReentrantLock-自旋
    Reentrantlock-的核心内容
    java中,BigDecimal的add方法避坑指南
    Reentrantlock-实现原理
    Reentrantlock-适用场景
    JAVA foreach和普通for循环是否需要判断为null
  • 原文地址:https://www.cnblogs.com/crazycode2/p/10987024.html
Copyright © 2011-2022 走看看