1.Egg.js-环境搭建
发布于 2022年 02月 04日 08:39
1 Egg.js简介
1.1 是什么
Egg.js是阿里公司开源的一套Nodejs的企业级应用开发框架。
Egg.js为企业级框架和应用而生,我们希望由Egg.js孕育出更多的上层框架,帮助开发团队和开封人员降低开发成本。官网地址:eggjs.org/zh-cn/intro…
1.2 为什么选择Egg.js
- 减少搭建项目的时间
- 一切倾向于配置
- 可以更加着重考虑业务逻辑
- 约定高于配置,方便团队开发、维护
1.3 特点
- 提供基于 Egg 定制上层框架的能力
- 高度可扩展的插件机制
- 内置多进程管理
- 基于 Koa 开发,性能优异
- 框架稳定,测试覆盖率高
- 渐进式开发
2.初始化项目
2.1 Egg.js可以使用脚手架快速初始化项目
- 操作系统:支持 macOS,Linux,Windows
- 运行环境:Nodejs 建议选择 LTS 版本,Nodejs 最低要求 8.x,npm >=6.1.0
mkdir egg-example && cd egg-example
npm init egg --type=simple
npm install
2.2 然后启动项目
npm run dev
open http://localhost:7001
2.3 目录结构
egg-project
├── package.json
├── app.js (可选)
├── agent.js (可选)
├── app
| ├── router.js
│ ├── controller
│ | └── home.js
│ ├── service (可选)
│ | └── user.js
│ ├── middleware (可选)
│ | └── response_time.js
│ ├── view (可选)
│ | └── home.tpl
│ └── extend (可选)
│ ├── helper.js (可选)
├── config
| ├── plugin.js
| ├── config.default.js
│ ├── config.prod.js
目录结构说明
- app/router.js 用于配置 URL 路由规则。
- app/controller/** 用于解析用户的输入,处理后返回相应的结果。
- app/service/** 用于编写业务逻辑层,可选,建议使用。
- app/middleware/** 用于编写中间件,可选。
- app/extend/** 用于框架的扩展,可选。
- config/config.{env}.js 用于编写配置文件。
- config/plugin.js 用于配置需要加载的插件。
3 配置开发环境
3.1 添加vscode-eggjs扩展插件
vscode-eggjs插件实现了controller、service和model 类的自动生成,提高了开发效率。如果第一次安装没有代码提示,重启vscode即可。
GitHub地址:github.com/eggjs/vscod…
3.2 vscode调试egg.js项目
配置 VSCode 的 .vscode/launch.json
,然后 F5 一键启动即可。
// .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Egg",
"type": "node",
"request": "launch",
"cwd": "${workspaceRoot}",
"runtimeExecutable": "npm",
"windows": { "runtimeExecutable": "npm.cmd" },
"runtimeArgs": [ "run", "debug" ],
"console": "integratedTerminal",
"protocol": "auto",
"restart": true,
"port": 9229,
"autoAttachChildProcesses": true
}
]
}
启动成功日志
还有一种方式就是使用 Chrome DevTools 调试
- 直接访问控制台最后输出的 DevTools 地址,该地址是代理后的 worker,无需担心重启问题。
- 访问 chrome://inspect,配置对应的端口,然后点击 Open dedicated DevTools for Node 即可打开调试控制台。