javascript - node请求其他服务器的方法。
迷茫
迷茫 2017-06-29 10:08:40
0
4
842

项目想采用node作为中间层,
第一层 浏览器发请求到node
第二层 node发送请求到php
略懂一点node和express框架,请问node如何发送请求到php拿到数据返回前台,有没简单易懂的方法。

使用了http-proxy-middleware能拿到数据,但是我想匹配到路由再发送请求到后台渲染ejs模版。

const apiProxy = proxy('/do', { target: 'http://wx.lxjjz.cn',changeOrigin: true });//将服务器代理到localhost:8080端口上[本地服务器为localhost:3000]
app.use('*', apiProxy);//子目录下的都是用代理
 
app.get('/index', function(req,res){
     //我想在这里匹配到路由,然后在这里发送请求拿数据
     //然后根据返回的数据传送到ejs模版渲染
     res.sendFile(__dirname+'/index.html');
});
 

客户端

var contextPath = 'http://wx.lxjjz.cn';
                $.ajax({
                    type:'get',
                    url:contextPath+'/do?g=api&m=hd&a=works-list',
                    success:function(data){
                        console.log(data);
                    },
                    error:function(data){
                        console.log(data);
                    }
 
                })
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(4)
滿天的星座

node有各种请求库啊。自带的也有request

整个流程大概就是

  1. 客户端请求node服务器

  2. node服务器请求php然后包装返回的response数据

  3. 将上面的包装好的数据返回给客户端

需要注意的就是要处理下回调,如果要好看点可以使用promise或者co模块等来处理异步代码。

迷茫

这个有各种解决办法,我就说我们用的这个吧node-rest-client
比如使用express,自己写个路由,如果/ajax用于接受前端请求
前端请求都发到/ajax就可以了,然后在/ajax里面,使用node-rest-client将请求转发到php,php返回数据后,res.json(data)就可以了
当然这中间你需要自己封装统一一下数据等,这个都是小事,主要思路大概就是这样的

刘奇

http-代理中间件

Ty80

如果只是代理转发、

中间层不做任何数据封装的话、可以使用这个中间件:

https://github.com/chimurai/h...

通常来讲都是要node来进行数据封装的、api那一层不管业务、这样可以解耦、

那就需要单独做各种接口、拿到数据自己用lodash和moment重组、发给前台、

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板