Egg 项目目录与控制器

593 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。

A journey of a thousand miles begins with single step

持续更新中...

系列文章传送门:

目录结构

主要关注 appconfigtets即可

egg-project
├─ .autod.conf.js
├─ .eslintignore
├─ .eslintrc
├─ .github
│  └─ workflows
│     └─ nodejs.yml
├─ .gitignore
├─ .travis.yml
├─ app // 主要工作目录类似 vue中共的src
│  ├─ controller // 控制器 用于解析用户的输入,处理后返回相应的结果
│  │  └─ home.js
│  ├─ public // 用于放置静态资源,可选
│  └─ router.js //用于配置 URL 路由规则
├─ appveyor.yml
├─ config // 配置目录
│  ├─ config.default.js // 用于编写配置文件
│  └─ plugin.js // 用于配置需要加载的插件
├─ jsconfig.json
├─ package.json
├─ README.md
└─ test // 用于单元测试
   └─ app
      └─ controller
         └─ home.test.js

新建页面

  • app/controller/home.jsindex结束后,添加如下代码

    async vience() {
      const { ctx } = this;
      ctx.body = '<p> this is a new page </p>';
    }
    
  • app/router.js 中第8行后面配置上面方法的路由地址

    router.get('/vience', controller.home.vience);
    
  • 效果

    newpage

Controller 控制器

  • Router 主要用来描述请求 URL 和具体承担执行动作的 Controller 的对应关系, 框架约定了 app/router.js 文件用于统一所有路由规则。

  • 代码编写

    app/controller 下新建 product.js文件

    const Controller = require('egg').Controller;
    class PorductController extends Controller {
      async index() {
        const { ctx } = this;
        ctx.body = 'product page';
      }
    }
    module.exports = PorductController;
    
    

    app/router.js 中添加

    router.get('/product', controller.product.index);
    

product

项目代码

gitee.com/yunxii/egg-…

写在最后

关注我,更多内容持续输出

🌹 喜欢就点个赞吧👍🌹

🌹 觉得有收获的,可以来一波 收藏+关注,以免你下次找不到我😁🌹

🌹欢迎大家留言交流,批评指正,转发请注明出处,谢谢支持!🌹