egg学习笔记第二天:egg.js目录结构介绍、定义controller以及配置路由、egg目录约定规范、vscode+egg开发工具配置

原创
一生懸命吧
后台
2020/04/06 19:12
阅读数 4.2K
本文被收录于专区
大前端
进入专区参与更多专题讨论
AI+网络安全商业案例白皮书,快来下载!”

今天来介绍一下egg.js的目录结构,以及vscode egg开发工具配置

一、egg.js目录结构介绍

 

二、egg.js目录约定规范

egg-project
├── package.json
├── app.js (可选)
├── agent.js (可选)
├── app
|   ├── router.js
│   ├── controller
│   |   └── home.js
│   ├── service (可选)
│   |   └── user.js
│   ├── middleware (可选)
│   |   └── response_time.js
│   ├── schedule (可选)
│   |   └── my_task.js
│   ├── public (可选)
│   |   └── reset.css
│   ├── view (可选)
│   |   └── home.tpl
│   └── extend (可选)
│       ├── helper.js (可选)
│       ├── request.js (可选)
│       ├── response.js (可选)
│       ├── context.js (可选)
│       ├── application.js (可选)
│       └── agent.js (可选)
├── config
|   ├── plugin.js
|   ├── config.default.js
│   ├── config.prod.js
|   ├── config.test.js (可选)
|   ├── config.local.js (可选)
|   └── config.unittest.js (可选)
└── test
    ├── middleware
    |   └── response_time.test.js
    └── controller
        └── home.test.js

如上,由框架约定的目录:

  • app/router.js 用于配置 URL 路由规则。
  • app/controller/** 用于解析用户的输入,处理后返回相应的结果。
  • app/service/** 用于编写业务逻辑层,可选,建议使用。
  • app/middleware/** 用于编写中间件,可选。
  • app/public/** 用于放置静态资源,可选。
  • app/extend/** 用于框架的扩展,可选。
  • config/config.{env}.js 用于编写配置文件。
  • config/plugin.js 用于配置需要加载的插件。
  • test/** 用于单元测试。
  • app.js  agent.js 用于自定义启动时的初始化工作,可选。

由内置插件约定的目录:

  • app/public/** 用于放置静态资源,可选。
  • app/schedule/** 用于定时任务,可选。

三、egg执行流程:

当用户访问页面,如果没有中间件,先进行路由匹配,找到router.js文件,可知当用户访问路径为/时,会执行controller下home模块的index方法。

找到controller的home模块的index方法,可知为页面写入了hi,egg的内容

接下来,照葫芦画瓢,我们在router.js中新建一个路由配置,使用户访问到/login时执行controller下home模块的login方法。

在home.js里写入login方法,写入“我是登录页面” 字样。

紧接着访问/login 就能看到 文字渲染出来了:

 

当然,在项目中肯定不会只有一个controller,所以我们新建一个名为news的控制器,此处建议安装vscode eggjs扩展,以便快速生成controller模板等文件

 

当news.js建立完成后, 键入如下内容:

继续在路由里面做配置,访问/newsList时执行上图controller 中news模块下的getNewsList方法,访问/newsList 如下图:

 

但是,光给用户显示光秃秃的文字确实谈不上什么体验,最起码要渲染一个有样式有逻辑的页面吧。大家都知道,egg是一个基于nodejs的MVC框架,当用户输入url,先匹配路由。路由找对应的控制器,控制器中渲染页面和数据,需要数据就找model层要,model层去请求数据库返回数据。

MVC:

view:                          视图,模板,页面展示 (约定app目录下view文件夹中)

Controllor控制器:负责处理业务逻辑(约定app目录下controller文件夹中)

model 模型:             和数据库打交道(约定app目录下service文件夹中)

明天给大家分享 静态资源 配置模板引擎 中间件等基础内容,敬请期待~~

 

 

展开阅读全文
controller home login news view egg.js index 开发工具 app.js context json nodejs mvc框架
加载中
点击加入讨论🔥(2) 发布并加入讨论🔥
打赏
2 评论
2 收藏
3
分享
返回顶部
顶部

深圳SEO优化公司湘西网页制作商丘网页设计荷坳网站排名优化公司晋中网站优化排名公司坂田网站建设设计价格桐城网站推广系统哪家好运城SEO按天扣费哪家好昌都关键词排名报价南山网站seo优化白山百度竞价多少钱开封百姓网标王推广多少钱鞍山关键词按天收费推荐上海网站建设多少钱安庆百度网站优化多少钱伊春百度标王公司渭南品牌网站设计哪家好荆州网站搜索优化哪家好张北SEO按天计费价格丹东百度网站优化公司马鞍山网站建设茂名至尊标王多少钱淮南网站seo优化哪家好上饶百度网站优化公司安康关键词按天收费朝阳百度竞价推荐安康网站优化按天扣费哪家好永州营销型网站建设公司潜江营销型网站建设哪家好丹竹头seo网站优化公司昭通建网站哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化