如何使用Axios的Node.js网络请求

723 阅读4分钟

使用Axios的Node.js网络请求

在现代技术世界中,很少能找到独立的应用程序。大多数应用程序都依赖于其他应用程序的资源。这些资源是通过使用API来实现的。服务器也不例外。尽管服务器存储自己的相关数据,但有时也需要来自其他服务器的数据。为了访问这些数据,服务器需要一种方法来与所依赖的服务器的API进行通信。这就是Axios的作用。

简介

Axios是一个非常流行的JavaScript框架,用于执行网络请求。Axios在浏览器和Node.js运行时都能工作。Axios是基于承诺的,但也允许使用现代的async/await方法。本文将介绍Axios以及如何使用它在Node.js中进行网络请求。

前提条件

要学习这篇文章,你需要安装Node.js,并了解一些基础知识,如如何建立一个简单的服务器并对其进行配置。

通过这篇文章,我们将从我们的Node.js应用程序向一个免费的JSON占位符API发出网络请求。我们的应用程序将发回它从API收到的响应。

让我们开始吧!

设置我们的服务器

首先创建一个新的Node.js项目。用你选择的名字创建一个文件夹,并从终端运行以下命令。

npm init
npm i express axios

npm init 初始化一个新的node.js应用程序,而第二个命令则是安装 和 。express axios

完成这些后,让我们继续创建我们的服务器。

创建一个index.js文件,并在其中写入以下代码。

const express = require("express");
const app = express();
const axios = require("axios").create({baseUrl: "https://jsonplaceholder.typicode.com/"});

app.listen(2400, () => {
	console.log("Server started at port 2400");
});

在这里,我们导入所需的依赖项,即Express和axios。在axios的导入中,我们使用create方法来指定基本URL,这是我们的axios对象将预置到我们所有请求中的URL。

使用这个命令运行服务器。

node index

现在我们的服务器已经启动并运行了,让我们看看什么是网络请求以及axios允许我们做什么。

开始使用axios

我们已经提到了网络请求,但我们还没有说这是什么。顾名思义,网络请求是通过互联网从客户端向服务器发送的请求。在这种情况下,客户端也可以是另一个服务器。Axios允许我们从浏览器和Node.js应用程序中进行HTTP 。它允许我们进行GETPOST 请求,这是最常用的HTTP 方法。

让我们来看看我们如何进行这些类型的请求。

GET请求

所有的axios请求都是使用我们在第一个代码片断中导入的axios对象创建的。axios对象需要一个对象参数。该对象包含请求的URL和与请求相关的HTTP方法。

app.listen 方法之前添加以下代码。

app.get("/async", async (req, res) => {
	try {
		const response = await axios({
			url: "users",
			method: "get",
		});
		res.status(200).json(response.data);
	} catch (err) {
		res.status(500).json({ message: err });
	}
});

在上面的代码中,我们做了一个端点,向JSON占位符API发出了GET 的请求。然后端点返回它从服务器上收到的响应。axios对象返回一个承诺,但我们能够使用async/await方法,这使得我们的代码看起来有顺序。然而,你仍然可以使用承诺库。这就是代码的模样。

app.get("/promise", (req, res) => {
	axios({
		url: "users",
		method: "get",
	})
		.then(response => {
			res.status(200).json(response.data);
		})
		.catch((err) => {
			res.status(500).json({ message: err });
		});
});

使用Postman测试这两个端点,并观察其输出。

另外,你可以不写URL和方法,而是直接从对象中调用方法,只需传入URL。

例子。

axios.get("users")

POST请求

对于POST请求,axios对象需要输入URL、方法和POST的主体。

要进行POST请求,你只需从axios对象中调用POST方法,并传入要发布的内容。

下面是一个使用async/await方法的代码例子。

app.post("/async/post/", async (req, res) => {
	try {
		const response = await axios.post("posts", {
			title: "Foo",
			body: "bar",
			userID: 1
		});
		res.status(200).json(response);
	} catch (err) {
		res.status(500).json({ message: err });
	}
});

当使用承诺时,代码将如下所示。

app.get("/promise/post", (req, res) => {
	axios.post("posts", {
		title: "Foo",
		body: "bar",
		userID: 1
	})
		.then(response => {
			res.status(200).json(response.data);
		})
		.catch((err) => {
			res.status(500).json({ message: err });
		});
});

结语

至此,我们的教程就结束了。在这篇文章中,我们已经了解了什么是axios,以及如何使用它从Node.js进行GET和POST请求。Axios还提供了其他的HTTP请求,如PUT和PATH,但它们不是很流行,不过,它们使用的语法与我们刚才说的两种方法相同。希望这能帮助你开始使用axios。