如何在Node.js/Express.js的服务器端连续调用API

如何在Node.js/Express.js的服务器端连续调用API

调用API端点是现代互联网技术的核心功能。通常,我们从浏览器中调用API。有时候,我们需要从服务器本身调用API端点来获取数据,加载依赖等。

在NodeJS服务器上调用API有多种方法,取决于你想使用的抽象级别。在NodeJS服务器上调用API的最简单方法是使用Axios库。

项目设置: 创建一个NodeJS项目,然后使用以下命令进行初始化。

mkdir Project && cd Project
npm init -y
JavaScript

模块安装: 安装所需模块,即 ExpressJSAxios ,使用以下命令。

npm i express axios
JavaScript

现在在项目的根目录中创建一个JS文件,并将其命名为 index.js

1. 发起HTTP GET请求:

index.js 文件中编写以下代码。

index.js

const express = require('express') 
const axios = require('axios') 
  
const app = express() 
  
// Post ID tracker 
var num = 0 
  
setInterval(() => { 
  
   // Increment post tracker 
   num++ 
   console.log('Wait for 2 second...') 
  
   // Make GET Request on every 2 second 
   axios.get( 
`https://jsonplaceholder.typicode.com/posts/{num}`) 
  
      // Print data 
      .then(response => { 
         const { id, title } = response.data 
         console.log(`Post{id}: ${title}\n`) 
      }) 
  
      // Print error message if occur 
      .catch(error => console.log( 
            'Error to fetch data\n')) 
}, 2000) 
JavaScript

解释: 在上面的示例中,NodeJS每2秒调用一次API来获取数据。如果promise被解析,那么 将被执行并打印数据。如果promise被拒绝, catch块 将被执行并打印错误消息。

使用以下命令运行 服务器

node index.js 
JavaScript

输出:

如何在Node.js/Express.js的服务器端连续调用API

2. 发起一个 HTTP POST 请求: 将以下代码写入 index.js 文件中。

index.js

const express = require('express') 
const axios = require('axios') 
  
const app = express() 
  
// Dummy database 
const posts = [ 
   { 
      title: 'Headline 1', 
      id: 1, 
      body: `sint suscipit perspiciatis velit dolorum  
            rerum ipsa laboriosam odio`, 
      userId: 1 
   }, 
  
   { 
      title: 'Headline 2', 
      id: 2, 
      body: "fugit voluptas sed molestias voluptatem provident", 
      userId: 1 
   }, 
  
   { 
      title: 'Headline 3', 
      id: 3, 
      body: "voluptate et itaque vero tempora molestiae", 
      userId: 1 
   } 
] 
  
// Loop over the posts 
posts.forEach(post => { 
  
   // Post data to API endpoint 
   axios.post('https://jsonplaceholder.typicode.com/posts/', { 
      body: post, 
   }) 
  
      // Print response 
      .then(response => { 
         const { id, title } = response.data.body 
         console.log(`Post {id}:{title}`) 
      }) 
  
      // Print error message if occur 
      .catch(error => console.log(error)) 
}) 
JavaScript

解释: 在上面的示例中,我们创建了虚拟用户数据。NodeJS发出POST请求将这些数据发送到API端点,并打印出响应的数据或错误消息。

使用以下命令运行 服务器 :

node index.js 
JavaScript

输出:

如何在Node.js/Express.js的服务器端连续调用API

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册