方案一:使用node自带的http模块
方案二:使用第三方的request模块
这里演示request
模块
#先安装
npm i request
/routes/index.js增加代码
var request = require('request');
router.get('/baidu/index',function(req,res,next){
var url = 'https://baidu.com';
request(url,function(error,response,body){
//判断请求是否成功
if (!error && response.statusCode == 200) {
res.send(body);
}
});
});
request模块在 2020.2.11 被废弃了,所以这里不再推荐使用
方案三:使用request的其他替代
推荐使用axios
Axios是一个基于 Promise 的 HTTP 库,可同时在浏览器和node.js中使用
功能特性
- 在浏览器中发送 XMLHttpRequests 请求
- 在 node.js 中发送 http请求
- 支持 Promise API
- 拦截请求和响应
- 转换请求和响应数据
- 自动转换 JSON 数据
- 客户端支持保护安全免受 XSRF 攻击
Axios同步操作实现
- 使用 axios.all([fn1, fn2, …]).then()来实现
- 利用ES7的 async await 来实现