在ExpressJS中,怎么发送请求到别的服务器请求数据?

WatcherLin
  • 105

目前公司想做前后端分离,后端接口使用PHP。

现在打算用express做中间件,进行模板和数据拼接。套模板是简单了,但是看了半天文档没发现哪里可以发送请求?是用node的http模块自己发请求吗?

回复
阅读 14.6k
5 个回答

简单说就是以前的读数据库编程了现在的一个HTTP请求。发送请求的方法@merryLi已经提到了。或者如果你不嫌麻烦也可以用node的http模块发送HTTP请求都是一样的效果。

使用 request 这个库来对外发起请求。

根据你的描述,我觉得你用 express-http-proxy 这个中间件更合适,这个是 request 的上层封装,帮你做了很多转发的事情

express自己就是个后端,相当于你的PHP,是接收请求的地方;

发请求你可以fetch/ajax都可以。。。

我跟你的需求一样,昨天自己研究了下,然后用request实现了,大概的代码如下,不知道能不能解决你的问题

var express = require('express');
var router = express.Router();
var request = require('request');

router.all('/*', function(req, res){
  var method = req.method.toUpperCase();
  var proxy_url = 'http:www.xx.com/api';

  var options = {
        headers: {"Connection": "close"},
          url: proxy_url,
          method: method,
          json: true,
          body: req.body
  };

  function callback(error, response, data) {
      if (!error && response.statusCode == 200) {
          console.log('------接口数据------',data);

          res.json(data)
      }
  }

  request(options, callback);
})

module.exports = router;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏