egg.js 是一个基于 Express.js 构建的 Node.js 后端框架,专为快速构建高性能、安全的 web 应用而生。egg.js 提供了丰富的中间件支持、方便的路由管理以及强大的安全性设置,旨在降低开发复杂度,让开发者能更专注于业务逻辑的实现。本指南将带你从零开始掌握 egg.js 的基础使用,快速搭建一个简单的 web 应用。
环境搭建安装依赖
首先,确保你的系统已安装 Node.js。接下来,使用 npm
(Node.js 包管理器)创建一个新的 egg.js 项目:
npm init egg --yes
这将初始化一个 egg.js 项目,并创建一个 package.json
文件来管理项目的依赖。接下来,通过 egg-bin
自动生成脚本:
npm install -g egg-bin
创建一个 egg.js 的基础应用:
egg-bin generate
这将生成一个新的 egg.js 项目结构,并配置好必要的依赖。你可以通过 cd
命令进入项目目录,并运行 npm install
来安装所有依赖:
cd your-project-name
npm install
基本概念
中间件
egg.js 使用中间件来处理 HTTP 请求,并在不同的处理阶段进行处理,例如日志记录、身份验证等。中间件可以通过 config.middleware
配置启用。
路由与控制器
在 egg.js 中,路由定义在 app/controller
目录下的 .js
文件中,控制器则用于处理 HTTP 请求。例如,创建一个简单的 Hello World 控制器:
// app/controller/hello.js
module.exports = {
async index(ctx) {
ctx.body = 'Hello, World!';
}
};
路由映射
在 app/router.js
中定义路由:
// app/router.js
module.exports = ctx => {
ctx.router.get('/', ctx.controller.hello.index);
};
此时,访问 http://localhost:3000/
将返回 "Hello, World!"。
在 egg.js 中,控制器一般包含处理业务逻辑的函数,如验证、数据处理等。在上面的 hello.js
文件基础上,添加一个功能:
// app/controller/hello.js
module.exports = {
async index(ctx) {
ctx.body = 'Hello, World!';
},
async customAction(ctx) {
ctx.body = `Custom action called. Query params: ${JSON.stringify(ctx.query)}`;
}
};
在 router.js
中添加新路由:
// app/router.js
module.exports = ctx => {
ctx.router.get('/', ctx.controller.hello.index);
ctx.router.get('/custom', ctx.controller.hello.customAction);
};
访问 http://localhost:3000/custom?param=value
将返回 "Custom action called. Query params: { param: 'value' }"。
egg.js 通过模板引擎实现页面渲染。配置默认的模板引擎(如 EJS):
// app/config/config.default.js
module.exports = {
view: {
engine: 'ejs'
}
};
创建一个简单的 EJS 模板文件 views/index.ejs
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Simple Egg.js App</title>
</head>
<body>
<h1><%= ctx.body %></h1>
</body>
</html>
视图使用
在控制器中使用模板引擎:
// app/controller/hello.js
module.exports = {
async index(ctx) {
ctx.body = 'Hello, World!';
ctx.render('index', { title: 'Hello World' });
},
async customAction(ctx) {
ctx.body = `Custom action called. Query params: ${JSON.stringify(ctx.query)}`;
ctx.render('index', { title: 'Custom Action' });
}
};
访问 http://localhost:3000/
将显示渲染后的模板。
部署 egg.js 应用至服务器通常涉及搭建和配置 Nginx 或其他 HTTP 服务器作为反向代理。以下是一般的部署步骤:
Nginx 配置
创建 Nginx 配置文件,例如 nginx.conf
:
http {
upstream backend {
server localhost:3000;
}
server {
listen 80;
server_name your.domain.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
确保 Nginx
服务已启动,并且监听 80
端口。
执行部署
将 egg.js 项目部署至服务器,通常可以通过 SSH 连接到服务器,将项目文件通过 scp
或 rsync
命令传输过去,并确保服务器上已安装了 Node.js。
完成部署后,使用 Nginx
的健康检查功能或在服务器上运行 ping
检查应用是否正常运行。
通过本指南,你已经掌握了使用 egg.js 构建 web 应用的基础知识,从环境搭建、基本概念理解到简单的功能实现,以及如何部署到生产环境。egg.js 的灵活性和强大的中间件支持使得它成为构建高性能 web 应用的理想选择。随着实践的深入,你可以进一步探索 egg.js 的更多特性,如自动化测试、性能优化等,以构建更加复杂和安全的 web 应用。
共同学习,写下你的评论
评论加载中...
作者其他优质文章