首頁  >  問答  >  主體

javascript - node請求其他伺服器的方法。

專案想採用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);
                    }
 
                })
迷茫迷茫2693 天前822

全部回覆(4)我來回復

  • 滿天的星座

    滿天的星座2017-06-29 10:10:40

    node有各種請求庫啊。自帶的還有request

    整個流程大概就是

    1. 客戶端請求node伺服器

    2. node伺服器請求php然後包裝回傳的response資料

    3. 將上面的包裝好的資料回傳給客戶端

    要注意的就是要處理下回調,如果要好看點可以使用promise或co模組等來處理非同步程式碼。

    回覆
    0
  • 迷茫

    迷茫2017-06-29 10:10:40

    這個有各種解決辦法,我就說我們用的這個吧node-rest-client
    比如使用express,自己寫個路由,如果/ajax用於接受前端請求
    前端請求都發到/ ajax就可以了,然後在/ajax裡面,使用node-rest-client將請求轉發到php,php回傳資料後,res.json(data)就可以了
    當然這中間你需要自己封裝統一一下資料等,這個都是小事,主要思路大概就是這樣的

    回覆
    0
  • 怪我咯

    怪我咯2017-06-29 10:10:40

    http-代理中介軟體

    回覆
    0
  • PHP中文网

    PHP中文网2017-06-29 10:10:40

    如果只是代理轉發、

    中間層不做任何資料封裝的話、可以使用這個中間件:

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

    通常來講都是要node來進行資料封裝的、api那一層不管業務、這樣可以解耦、

    那就需要單獨做各種介面、拿到資料自己用lodash和moment重組、發給前台、

    回覆
    0
  • 取消回覆