基于阿里egg框架搭建博客(1)——开发准备

相关文章

基于阿里egg框架搭建博客(1)——开发准备
基于阿里egg框架搭建博客(2)——Hello World
基于阿里egg框架搭建博客(3)——注册与登陆
基于阿里egg框架搭建博客(4)——权限控制
基于阿里egg框架搭建博客(5)——置顶导航条
基于阿里egg框架搭建博客(6)——浏览、发表文章
基于阿里egg框架搭建博客(7)——编辑文章css

git

https://github.com/ZzzSimon/e...
喜欢就点个赞吧!html

什么是egg.js

简单来说就是一个基于nodejs与koa的WEB框架。node

官方介绍: https://eggjs.org/zh-cn/intro...

环境准备

  1. 安装nodejs环境,下载地址:https://nodejs.org/en/download/
  2. 安装脚手架,在此基础上开发,具体执行如下命令:
$ npm i egg-init -g
$ egg-init egg-blog --type=simple
$ cd egg-blog
$ npm i

非脚手架(初学者推荐)

若是是初学者,建议本身建立全部的目录,以熟悉Egg官方所约定的规则。git

官方demo: https://eggjs.org/zh-cn/intro...

脚手架

Egg 奉行『 约定优于配置』,按照 一套统一的约定进行应用开发,团队内部采用这种方式能够减小开发人员的学习成本,开发人员再也不是『钉子』,能够流动起来。没有约定的团队,沟通成本是很是高的,好比有人会按目录分栈而其余人按目录分功能,开发者认知不一致很容易犯错。

如Egg官方所言,脚手架是对应用目录作了一个规范的示范,咱们在此基础上开发能省下很多功夫。
执行完上述命令以后,咱们能够看到以下的目录结构:github

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

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

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

由内置插件约定的目录:json

  • app/public/** 用于放置静态资源,可选,具体参见内置插件 egg-static
  • app/schedule/** 用于定时任务,可选,具体参见定时任务

若需自定义本身的目录规范,参见 Loader APIsegmentfault

  • app/view/** 用于放置模板文件,可选,由模板插件约定,具体参见模板渲染
  • app/model/** 用于放置领域模型,可选,由领域类相关插件约定,如 egg-sequelize

结尾

若是看完以为有用,请给做者一个喜欢吧!谢谢啦!app

相关文章
相关标签/搜索