Egg.js 是一个基于 Node.js 的高效、易用的全栈框架,它构建于 Express 和 Koa 之上,为开发者提供了一种快速搭建现代 Web 应用的方式。Egg.js 的设计旨在简化开发流程,提供强大的功能和出色的性能,同时保持代码的简洁和可维护性。
环境搭建安装Node.js:首先,确保已经安装了 nvm
(Node Version Manager),可以通过在终端中输入 nvm install stable
来下载并安装最新版本的Node.js。安装完成后,使用 nvm use
切换到指定版本。
yarn
(或 npm
)安装项目所需依赖。全局安装 yarn
:npm install --global yarn
,然后在项目目录中执行 yarn add project-name
来安装和管理依赖。安装Node.js:同样使用 nvm
进行版本管理,执行 nvm install stable
来安装最新版本。
yarn init -y
来生成 package.json
文件,这是项目的基础配置文件。使用 egg-cli
创建一个新项目:
npx egg new your-project-name
进入项目目录并初始化依赖:
cd your-project-name yarn install
Egg.js 项目结构通常包含 app
、config
、lib
、test
等目录。在 app
目录中,main.js
是应用的入口,controllers
存放控制器,routes
定义路由;config
用于配置文件;lib
包含公共代码;test
包含测试代码。
启动应用:
yarn dev
使用 Ctrl+C
停止服务。
在 Egg.js 中,控制器(Controller)是处理 HTTP 请求的主要组件。它通常包含一系列方法来响应不同的 HTTP 方法(GET, POST, PUT, DELETE 等)以及 URL 路径。
在 api/controller/User.js
文件中,定义一个简单的控制器:
// api/controller/User.js module.exports = app => { const { ctx } = app; ctx.helper = { sayHello: (username) => { return `Hello, ${username}`; } }; ctx.routes = [ { method: 'GET', path: '/hello/:username', handler: 'User.sayHello' } ]; };
在 app.js
中注册路由:
// app.js app.use(app.middleware.routes()); app.use(app.middleware.allowedMethods());
启动应用并访问 http://localhost:7001/hello/world
,应返回 Hello, world
。
Egg.js 支持多种模板引擎,如 EJS、Pug、Nunjucks 以及更多。这里以 EJS 为例。
yarn add ejs
在 views/index.ejs
中创建一个简单的视图:
<!DOCTYPE html> <html> <head> <title>Welcome!</title> </head> <body> <h1>Welcome, <%= username %>!</h1> </body> </html>
在 app.js
中配置视图引擎:
// app.js app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs');
访问 http://localhost:7001/hello/world
,视图将渲染并显示 Hello, world!
。
在 app.js
中配置错误处理器:
// app.js app.use(app.middleware.errorHandler());
编写错误处理逻辑:
// app.js app.onError((err, ctx) => { console.error(`An error occurred: ${err.stack}`); });
使用 egg-logger
库来记录日志:
yarn add egg-logger
在 app.js
中配置日志:
// app.js app.use(app.middleware.logger());
访问应用并执行操作,查看控制台输出的日志信息。
通过遵循以上指南,您可以快速地在 Egg.js 框架下搭建一个基础的 Web 应用,同时掌握关键的操作技巧,从而提升开发效率和应用质量。