如何用NodeJS和Express构建RESTFul API

1,546 阅读4分钟

如何用NodeJS和Express构建RESTFul APIs

了解如何用Node和Express构建REST API

John Philip

约翰-菲利普

遵循

10月26日- 4分钟阅读

图片来源:Expressjs.com

REST(Representational State Transfer)是一种软件架构风格,是为了指导万维网的架构设计和开发而产生的。REST为互联网规模的分布式超媒体系统(如Web)的架构应该如何表现定义了一套约束。

简单地说,REST允许两个计算机系统通过HTTP网络协议进行通信。特别是当我们想建立RESTFul的API时,REST就显得非常方便了。

开始使用

要启动和运行,你需要在你的开发环境中安装NodeJS。Nodejs将使我们能够在服务器上编写和执行JavaScript代码。

在这篇文章中,我们将使用一个名为Expressjs的Nodejs框架。Express是一个简单、简约的框架,但在使用Nodejs构建应用程序时却很强大。

初始化项目

首先,我们需要初始化一个新的项目,我们的开发环境将在这里运行。导航到你想作为开发服务器的目录,运行下面的命令。

NPM

npm init

你会被提示输入一些基于你工作环境和偏好的信息。

如果你想跳过初始化过程,你可以提供-y 标志,如下所示。

NPM

npm init -y

安装Expressjs

现在我们有了我们的应用程序支架,现在我们需要安装和配置Express。你可以通过以下命令来安装Express,这取决于你的首选软件包管理器。

NPM

npm i express

YARN

yarn add express

上面的命令将在我们的开发环境中安装Express。

配置Expressjs

现在我们已经在开发系统中安装了Expressjs,现在我们要配置它来开始开发我们的RESTFul API。

在你的目录根部,创建一个文件夹,并将其命名为 src.在这个文件夹中,创建一个文件,命名为index.js。 src文件夹中,创建一个文件并命名为index.js。这将是我们应用程序实例的入口点。

在这个 index.js文件,包括以下代码。

代码上的注释是对所发生的事情的解释。

现在要运行你的应用程序,你需要打开你的开发终端并运行该命令。

node src/index.js

现在导航到 **_http://localhost:3000/_**在你的浏览器上,你会看到我们的应用程序显示。

我们会把入口点文件index.js放在根目录下,但为了将我们的逻辑和关注点分组,我们把它放在了 src文件夹中。

发送JSON响应

到目前为止,我们已经看到了如何向客户端发送普通字符串信息。那么当我们想向客户端发送JSON类型的响应时呢。

特别是当我们想让用户获取信息并将其显示在各种应用实例上时,这也会很方便。如果你曾经在构建应用程序时使用过API,那么这对你来说是非常简单的。

Express使我们能够通过JSON(数据)方法发送JSON数据。这个方法接收数组或对象形式的数据并将其转换为JSON数据。

简单的例子

假设我们有一些与不同国家有关的数据,我们想把这些数据以JSON格式发送给客户。

我们可以利用这一点,如下面的代码片段所示。

现在,当我们的客户端对首页端点执行获取请求时,他将获得我们提供的数据的JSON信息。你可以通过重启你的开发服务器和检查你的http://localhost:3000/ 来测试这个。

配置 CORS (跨源资源共享)

现在我们的应用程序已经启动并运行,客户端可以执行获取请求并获得数据的JSON响应。需要注意的是,不是每个人都能访问JSON响应信息。我们的服务器可能会阻止一些人获得这些信息。

为了管理这个问题,并允许任何系统上的每个人访问信息,我们需要设置CORS,以允许来自任何域或服务器的请求。

我们将利用一个被称为 CORS 的包。

在你的开发终端,运行以下命令来安装CORS。

npm i cors

配置 CORS

现在我们的请求可以不受限制地提供给任何域或服务器上的任何人。

总结

Express为构建应用程序提供了一个简单而简约的设置。它的功能也很强大,有一个伟大的社区随时准备加入并提供帮助。

感谢你花时间读完这篇文章。

更多阅读

[

如何在NuxtJS项目中添加黑暗模式

如何使用@nuxtjs/color-mode和tailwindCSS为Nuxt.js网站添加黑暗模式?

纵观全局

](levelup.gitconnected.com/how-to-add-…)

[

我作为一个程序员的挣扎。

一个程序员的日常生活挣扎。

levelup.gitconnected.com

](levelup.gitconnected.com/my-struggle…)