npm 包 angel-server 使用教程

阅读时长 8 分钟读完

介绍

angel-server 是一款基于 Node.js 环境的框架,它能够快速搭建一个面向 RESTful 的 API 服务器。它提供了非常丰富的功能,包括但不限于:

  • 自动路由
  • 中间件支持
  • WebSocket 支持
  • 配置文件管理
  • JWT 鉴权支持

并且,angel-server 本身也是一个开放源代码的 npm 包,可以在项目中作为依赖引入。

本文将介绍如何使用 angel-server 搭建一个简单的 RESTful API 服务器。

安装

使用 npm 命令来安装 angel-server:

首先,我们创建一个项目文件夹,然后在该文件夹下创建一个 index.js 文件。

打开 index.js 文件,输入以下内容:

-- -------------------- ---- -------
----- ----- - ------------------------

----- --- - --------

------------ ----- ---- -- -
  ---------------- ---------
---

---------------- -- -- -
  ------------------- ------- -- ---- -------
---

以上代码创建了一个 angel 实例,并使用 app.get() 方法设置了一个路由,用于响应根路径的 GET 请求,并返回一段简单的 Hello World 字符串。接着,启动服务器:

然后,打开浏览器,访问 http://localhost:3000 ,应该会看到 "Hello, World!" 字符串。

路由

设置路由的方式和 Express.js 很相似。需要先创建一个 angel 实例,并使用 app.get()、app.post()、app.put()、app.delete() 等方法分别设置 GET、POST、PUT、DELETE 等 HTTP 请求的路由。

设置路由规则

使用 app.get('/path', handler) 来设置一个 GET 请求的路由规则。其中,'/path' 是路由的路径,handler 是一个用于处理请求的处理器函数。例如:

以上代码设置了一个名为 "/users" 的路由,用于响应 GET 请求,并返回一个包含 "

Users List

" 字符串的相应。

注意,路由规则按照代码书写的先后顺序生效。因此,应当把路由规则的定义放在所有中间件的前面。

路由参数

在 angel-server 中,通过添加路由规则的参数来处理动态路径。

在路由路径中,使用 ":" 运算符定义一个路由参数。

在以上代码中,:userId 就定义了一个名为 userId 的路由参数。在访问 http://localhost:3000/users/123 时,req.params.userId 的值就是 "123"。

路由参数匹配规则

可以使用正则表达式来控制参数的匹配规则。

在以上代码中,路由路径是一个正则表达式。正则表达式的子表达式将匹配到的值存储在 req.params 数组中。例如,访问 http://localhost:3000/users/123,req.params[0] 的值将会是 "123"。

中间件

使用 app.use() 方法来添加中间件。

-- -------------------- ---- -------
------------- ---- ----- -- -
  ------------------- --------- ------------- -------------
  -------
---

----------------- ----- ---- ----- -- -
  -- -------------------- -
    ------ --------------------
  -
  -------
---

上面的代码展示了如何定义一个简单的记录请求时间和请求URL的中间件,它会在每次请求进来时自动执行。又如,在 "/admin" 路径前,定义了一个名为 "auth" 的中间件,它用于检查是否已经进行了身份验证。

此外,Express.js 开发者可以在 angel-server 中直接使用 Express.js 中的中间件库。例如:

WebSocket

Angel-server 是一个支持 WebSocket 的框架。可以用以下方式创建一个 WebSocket 服务器:

-- -------------------- ---- -------
----- ----- - ------------------------

----- --- - --------

----------- ---- ---- -- -
  ---------------- ----- -- -
    ---------------------- ---------
    ------------ ----- ---------
  ---
---

---------------- -- -- -
  ------------------- ------- -- ---- -------
---

在以上代码中,调用 app.ws() 方法创建了一个 WebSocket 服务器。当客户端连接进来时,服务端会返回一个 WebSocket 实例。可以在这个实例上注册 message 事件以便接收客户端的数据,并用 send() 方法发送响应数据。

配置文件

使用 app.config 方法可以简单配置一个 JSON 配置文件。

-- -------------------- ---- -------
----- ----- - ------------------------

----- --- - --------

------------
  ----- -----
  ------- --- ------ -----
  -------- --- ----
---

------------ ----- ---- -- -
  --------------------------------
---

------------------------------ -- -- -
  ------------------- ------- -- ---- ------------------------
---

在以上代码中,使用 app.config() 方法简单配置一个 JSON 配置文件,然后使用 app.config() 方法获取配置项。

JWT 鉴权

使用 angel-server 部署一个安全的 API 已经变得非常简单。我们可以使用 JSON Web Token (JWT) 来添加基于令牌的身份验证。这个包可以让您通过一个简单的请求头像客户端传递身份验证令牌。可以使用 JWT 的 jsonwebtoken 来创建和验证令牌:

-- -------------------- ---- -------
----- ----- - ------------------------
----- --- - ------------------------

----- --- - --------

----- ------ - ----------------

------------- ---- ----- -- -
  -- --------- --- --------- -
    ------ -------
  -

  ----- ----- - --------------------------------- ------
  -- -------- -
    ------ --------------------
  -

  --- -
    ----- ------- - ----------------- --------
    -------- - --------
    -------
  - ----- ----- -
    --------------------
  -
---

------------------ ----- ---- -- -
  ----- - --------- -------- - - ---------

  -- --------- --- ------- -- -------- --- ----------- -
    ------ --------------------
  -

  ----- ----- - ---------- -------- -- --------
  ---------- ----- ---
---

----------------- ----- ---- -- -
  ----------- ----- ------- -- - ----- ----- ----
---

---------------- -- -- -
  ------------------- ------- -- ---- -------
---

以上代码创建了一个简单的用户 Auth 服务,用于生成 JWT 令牌。在 /login 路径下,当用户名和密码都是 "admin" 时,即返回一个包含 JWT 令牌的响应。在 /users 路径中,使用了 jwt.verify() 方法来验证 JWT 令牌是否有效。

总结

本文展示了如何在 Node.js 中使用 angel-server 搭建一个 RESTful API 服务器,如何设置路由规则、添加中间件、使用 WebSocket 和 JWT 鉴权等技术。除此之外,angel-server 还有非常多的功能和选项,可以去官方网站查看文档。

希望本文对你有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/63625

纠错
反馈