使用 Express.js 创建独立的 API 微服务

阅读时长 4 分钟读完

随着互联网的发展,越来越多的应用程序需要通过 API 进行交互。API 微服务是一种将应用程序拆分成小的、独立的服务的方法,这些服务可以独立部署和扩展。在本文中,我们将使用 Express.js 创建一个独立的 API 微服务,以便更好地理解这种服务的工作原理。

Express.js 简介

Express.js 是 Node.js 的一个 Web 框架,它提供了许多有用的功能,例如路由、中间件、模板引擎等。它的设计理念是简单、灵活和易于扩展。

创建一个基本的 Express.js 应用程序

首先,我们需要安装 Node.js 和 Express.js。

然后,我们可以创建一个基本的 Express.js 应用程序。创建一个名为 app.js 的文件,然后添加以下代码:

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

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

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

上面的代码创建了一个 Express.js 应用程序,并将其监听在端口 3000 上。当用户访问根路径时,它将返回一个简单的字符串。

现在,我们可以使用以下命令启动应用程序:

然后,在浏览器中访问 http://localhost:3000,您应该可以看到 "Hello World!" 的消息。

创建一个 API 微服务

现在,我们可以将我们的 Express.js 应用程序转换为 API 微服务。我们将添加一些路由和中间件,以便我们可以通过 API 进行交互。

首先,我们需要安装一些额外的包:

body-parser 是一个 Express.js 中间件,用于解析请求正文。cors 是一个 Express.js 中间件,用于配置跨域请求。

然后,我们可以修改我们的 app.js 文件,以添加一些路由和中间件。

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

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

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

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

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

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

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

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

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

上面的代码添加了两个新的路由。/api/items 路由返回一个包含三个项目的 JSON 数组。/api/items 路由使用 POST 方法,将一个新项目添加到数组中,并返回该项目的 JSON 表示形式。

现在,我们可以使用以下命令启动应用程序:

然后,在浏览器中访问 http://localhost:3000/api/items,您应该可以看到一个包含三个项目的 JSON 数组。

结论

在本文中,我们学习了如何使用 Express.js 创建一个独立的 API 微服务。我们了解了 Express.js 的基本概念和用法,并学习了如何添加路由和中间件。我们还学习了如何使用 body-parsercors 中间件,以便更好地处理请求。

希望本文对您有所帮助,并能为您在创建 API 微服务时提供指导。下面是完整的示例代码:

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

纠错
反馈