手记

Egg.js入门:快速搭建与基础操作指南

概述

Egg.js 是一个基于 Node.js 的高效、易用的全栈框架,它构建于 Express 和 Koa 之上,为开发者提供了一种快速搭建现代 Web 应用的方式。Egg.js 的设计旨在简化开发流程,提供强大的功能和出色的性能,同时保持代码的简洁和可维护性。

环境搭建

Mac/Linux环境搭建

  1. 安装Node.js:首先,确保已经安装了 nvm(Node Version Manager),可以通过在终端中输入 nvm install stable 来下载并安装最新版本的Node.js。安装完成后,使用 nvm use 切换到指定版本。

  2. 安装依赖:通过 yarn(或 npm)安装项目所需依赖。全局安装 yarnnpm install --global yarn,然后在项目目录中执行 yarn add project-name 来安装和管理依赖。

Windows环境搭建

  1. 安装Node.js:同样使用 nvm 进行版本管理,执行 nvm install stable 来安装最新版本。

  2. 初始化项目:在命令提示符中输入 yarn init -y 来生成 package.json 文件,这是项目的基础配置文件。
基础配置与运行

项目初始化

使用 egg-cli 创建一个新项目:

npx egg new your-project-name

进入项目目录并初始化依赖:

cd your-project-name
yarn install

项目结构解读

Egg.js 项目结构通常包含 appconfiglibtest 等目录。在 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 为例。

安装 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 应用,同时掌握关键的操作技巧,从而提升开发效率和应用质量。

0人推荐
随时随地看视频
慕课网APP