本文将从实例的角度,一步步地搭建出一个 Egg.js 应用,让你能快速的入门 Egg.js。
直接使用脚手架快速生成项目
mkdir egg-example && cd egg-example
npm init egg --type=simple
? project name 项目名称
? project description 项目描述
? project author 项目作者
? cookie security keys(1589523302535_3846)
╭───────────────────────────────────────────────────────────╮
│ New patch version of npm available! 6.14.4 → 6.14.5 │
│Changelog: https://github.com/npm/cli/releases/tag/v6.14.5 │
│ Run npm install -g npm to update! │
│ │
╰───────────────────────────────────────────────────────────╯
// 安装依赖
npm i
// 启动项目
npm run dev
由框架约定的目录:
-
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.js
和agent.js
用于自定义启动时的初始化工作,可选,具体参见启动自定义。关于agent.js
的作用参见Agent机制。
由内置插件约定的目录:
-
app/public/**
用于放置静态资源,可选,具体参见内置插件 egg-static。 -
app/schedule/**
用于定时任务,可选,具体参见定时任务。
若需自定义自己的目录规范,参见 Loader API
-
app/view/**
用于放置模板文件,可选,由模板插件约定,具体参见模板渲染。 -
app/model/**
用于放置领域模型,可选,由领域类相关插件约定,如 egg-sequelize。