Express.js 中使用 request-promise 进行 HTTP 请求

Express.js 作为 Node.js 中最流行的 Web 框架之一,给前端开发带来了极大的方便。而 request-promise 这个 Node.js 的库则可以帮助开发者更方便地进行 HTTP 请求。本文将介绍如何在 Express.js 中使用 request-promise 进行 HTTP 请求的方法及其配置。

安装 request-promise

在使用 request-promise 进行 Web 请求前,需要先安装它:

安装完成后,我们就可以在项目中使用 request-promise 进行 HTTP 请求了。

如何使用 request-promise 进行 HTTP 请求

request-promise 是一个基于 Bluebird 承诺的全新 API。我们可以在 Express.js 应用程序中轻松地使用 request-promise 进行 HTTP 请求。下面是基本的请求 API。

const rp = require('request-promise');

app.get('/api/user/:id', async (req, res) => {
  const { id } = req.params;
  const options = {
    method: 'GET',
    uri: `http://localhost:3000/users/${id}`,
    json: true,
  };
  const result = await rp(options);
  res.send(result);
});

在上面的代码片段中,我们使用了 GET 方法请求 URI,然后把获取的结果转化为 JSON 对象,并将结果发送回客户端的请求。

配置 request-promise 的选项

我们可以通过 options 对象来配置 request-promise 请求。下面是一些常见选项:

  • uri - 请求的 URI
  • qs - 查询参数对象
  • headers - 请求头的对象
  • body - POST 请求的请求体
  • json - 将结果转换为 JSON 对象

下面是一个完整的示例,其中我们将查询 params 的 id 值,然后使用 request-promise 对 API 进行请求。

const rp = require('request-promise');

app.get('/api/user/:id', async (req, res) => {
  const { id } = req.params;
  const options = {
    method: 'GET',
    uri: `http://localhost:3000/users/${id}`,
    headers: {
      'User-Agent': 'Request-Promise'
    },
    json: true,
  };
  const result = await rp.get(options);
  res.send(result);
});

在上面的代码片段中,我们使用了 GET 方法请求 URI,传递了 headers 对象,并将结果转化为 JSON 对象。

总结

本文介绍了如何使用 request-promise 进行 HTTP 请求。我们已经通过 options 对象学习了如何配置 request-promise 的请求选项,并了解了如何将结果转换为 JSON 对象。希望本文能够帮助大家更好地使用 Express.js 进行 Web 开发。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65b0aa78add4f0e0ffa047d0