0%

【NodeJS】基于Express框架创建的Node后台中进行网络请求

此文章是这个系列的第五篇文章,也是最后一篇文章。我们给大家介绍下如何在Node的后台项目中去发送一个Ajax请求,获取其它接口的数据。

写在前面

NodeJS后台主要是用来实现后台数据库的增删改查,但有时候我们也需要在Node后台中进行网络请求,就是说我们自己写的后台接口中要请求另一个其它接口的需求。这种场景其实在解决跨域问题的时候用的比较多,比如有一个第三方的接口,我们请求时出现了跨域问题,这个时候我们可以在自己的前端项目里配置跨域,比如Vue、React中都可以配置跨域访问,我们也可以自己写一个后台,在这个后台中去请求第三方接口,然后我们解决自己写的后台的跨域问题就可以了,第三方的接口我们只是相当于做一下转发而已,所以这个过程中就涉及到Node中进行网络请求,我们接下来看看详细的介绍。

环境要求

  • 安装了NodeJS环境(可以使用npm包管理工具)
  • 初始化了一个NodeJS后台项目demo

操作步骤

1、安装axios,通过以下命令安装,如下:

1
npm install axios --save-dev

当然,你也可以使用ajax,直接npm方式安装jquery后引用即可。

2、引入axios,然后其他使用方法跟在前端是用一致,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
var express = require('express');
var axios = require('axios');
var router = express.Router();

router.post('/forward', function(req, res) {
var queryString = req.body.queryStr;
axios
.get('https://www.geoq.cn/geoq.do',{
params: {
handler: 'api',
opt: 'single',
querystr: queryString
}
})
.then(result => {
console.log('后台获取成功', result);

res.send(
{
'state': '后台获取成功',
'data': result.data.result
}
);
})
.catch((e) => {
console.log('后台获取错误', e);

res.send({
'state': 'error',
'data': '后台获取错误'
});
});
});

module.exports = router;

3、请求成功后的输出信息如下:

img

同样的,前端也可以拿到返回的值,如下:

img

总结

本文主要是介绍如何在自己写的后台中去请求一个第三方的网络接口,主要是用来解决跨域问题。