最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node 使用express-http-proxy 做api網關的實現

 更新時間:2020年10月15日 09:37:40   作者:愚坤  
這篇文章主要介紹了Node 使用express-http-proxy 做api網關的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

拷貝代碼備忘,filter過濾請求,proxyReqOptDecorator重寫請求頭,代碼如下:

var express = require('express');
var proxy = require('express-http-proxy')

var app = express();

app.all('*', function (req, res, next) {
 res.header("Access-Control-Allow-Origin", req.headers.origin);
 res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
 res.header("Access-Control-Allow-Credentials", "true");
 res.header("Content-Type", "application/json;charset=utf-8");
 if (req.method == 'OPTIONS') {
  res.header('Access-Control-Allow-Headers', req.headers['access-control-request-headers']);
  res.send(200); /*讓options請求快速返回*/
 }
 else {
  next();
 }
});

// 代碼轉發(fā)
app.use('/ProxySSO', proxy(req => {
 return req.headers.apiurl
}, {
 filter: function (req, res) {

  // 用戶名\系統(tǒng)標識\用戶權限
  let { systemName, masterName, powers } = req.tokenDecode;
  const { originalUrl } = req;
  const url = originalUrl.replace('/ProxySSO', '').split('?')[0];

  /**
   * 接口權限檢查
   * @param {String} url 接口地址
   * @param {Object} powers rbac權限列表
   * @returns {boolean} 是否有權限
   */
  const checkPowers = (url, powers) => {
    //  do something
  }
  const hasPowers = checkPowers(url, powers);
   // 權限判斷
  return hasPowers;
 },
 proxyReqOptDecorator: function(proxyReqOpts, srcReq) {
  // header增加masterName 具體按照自己的需求來
  // proxyReqOpts.headers['masterName'] = srcReq.tokenDecode.masterName;
  return proxyReqOpts;
 }
}));

module.exports = app;

到此這篇關于Node 使用express-http-proxy 做api網關的實現的文章就介紹到這了,更多相關Node api網關內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

  • 詳解node如何讓一個端口同時支持https與http

    詳解node如何讓一個端口同時支持https與http

    眾所周知node是一個高性能的web服務器,使用它可以很簡單的創(chuàng)建一個http或https的服務器。這篇文章主要介紹了詳解node如何讓一個端口同時支持https與http
    2017-07-07
  • mongoose更新對象的兩種方法示例比較

    mongoose更新對象的兩種方法示例比較

    最近在使用mongoose的時候發(fā)現了一個之前一直沒注意的知識點,下面這篇文章主要給大家介紹了關于mongoose更新對象的兩種方法,通過示例代碼將兩種方法進行詳細的對比,以給大家更好的參考學習,需要的朋友可以參考下。
    2017-12-12
  • Node.js處理I/O數據之使用Buffer模塊緩沖數據

    Node.js處理I/O數據之使用Buffer模塊緩沖數據

    這篇文章介紹了Node.js使用Buffer模塊緩沖數據的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • node使用promise替代回調函數

    node使用promise替代回調函數

    這篇文章主要介紹了node使用promise替代回調函數,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • NodeJS實現阿里大魚短信通知發(fā)送

    NodeJS實現阿里大魚短信通知發(fā)送

    本文給大家介紹的是nodejs實現使用阿里大魚短信API發(fā)送消息的方法和代碼,有需要的小伙伴可以參考下。
    2016-01-01
  • 利用Node.js手寫一個簡單的koa

    利用Node.js手寫一個簡單的koa

    這篇文章主要為大家詳細介紹了如何手動寫一個簡單的koa,通過這個流程就可以較好的掌握koa2中的基本概念,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-01-01
  • 談談node.js中的模塊系統(tǒng)

    談談node.js中的模塊系統(tǒng)

    這篇文章主要介紹了node.js中的模塊系統(tǒng),幫助大家更好的理解和學習node.js框架,感興趣的朋友可以了解下
    2020-09-09
  • Nodejs中使用captchapng模塊生成圖片驗證碼

    Nodejs中使用captchapng模塊生成圖片驗證碼

    本篇文章主要介紹了Nodejs中使用captchapng模塊實現圖片驗證碼,非常具有實用價值,需要的朋友可以參考下
    2017-05-05
  • NodeJS使用Range請求實現下載功能的方法示例

    NodeJS使用Range請求實現下載功能的方法示例

    本篇使用 NodeJS 的 HTTP 服務創(chuàng)建客戶端,使用 Range 請求實現下載功能,本篇使用 NodeJS 的 HTTP 服務創(chuàng)建客戶端,使用 Range 請求實現下載功能
    2018-10-10
  • Restify中接入Socket.io報Error:Can’t set headers的錯誤解決

    Restify中接入Socket.io報Error:Can’t set headers的錯誤解決

    這篇文章主要給大家介紹了在Restify中接入Socket.io報Error:Can’t set headers的錯誤解決方法,文中介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03

最新評論

蕲春县| 调兵山市| 图木舒克市| 富裕县| 北碚区| 青阳县| 宾川县| 石泉县| 白沙| 同心县| 昌黎县| 上林县| 陇川县| 田阳县| 竹山县| 礼泉县| 临海市| 潮安县| 霍州市| 连城县| 保靖县| 海兴县| 抚宁县| 海城市| 饶阳县| 宜兰县| 法库县| 藁城市| 卓尼县| 阳原县| 天等县| 安平县| 祥云县| 镇平县| 防城港市| 黎平县| 新建县| 海伦市| 灵丘县| 巩留县| 霍州市|