黃韋智

77 跟鬼一樣,但季後賽布朗森有跳出來惹
var swapPairs = function(head) {
// Initialise a dummy list containing the provided one
let dummyList = new ListNode(null, head);
// Create a copy of the dummy list which we can traverse with
let current = dummyList;
// While there are 2 additional elements remaining
while (current.next && current.next.next) {
// Obtain the nodes to be swapped
const first = current.next;
const second = current.next.next;
// Swap the nodes
first.next = second.next;
second.next = first;
current.next = second;
// Move forward by 2 elements
current = current.next.next;
}
// Return the swapped LinkedList, removing the dummy head
return dummyList.next;
};

--

--

--

--

建立 Proxy 保護 API url

Proxy 是一種設計模式,代表實際存在的網路實體,可以存在於 backend server 之間,也能存在於路由器之間,又或者是多台電腦之間。

延伸閱讀:[筆記] 認識 OAuth 2.0:一次了解各角色、各類型流程的差異

Proxy 概念

不直接操作目標物件,而是會建立一個代理(proxy)負責對目標物件的操作。優點包含:

  1. 避免程式碼重複( code duplication )以外,
  2. 針對 proxy 做額外的操作時,不用擔心更改到目標物件。

Http Proxy 配合 Node.js 實作

Http proxy 常見的應用情形:

  1. 網路請求路由:架構完整的專案中,可能會提供 development 版本的 API 與 production 版本的 API,通常兩種版本的 API 也會部署在不同的 domain 上面。但我們不希望在 Client Side 處理決定呼叫哪個 API 的邏輯,可以由 proxy 決定呼叫哪個 API。
  2. 認證(Authorization): Client 發出 request 之後,會在 proxy 檢查是否擁有足夠的權限可以訪問該資源。如果檢查合格,proxy 再向目標發出請求,如果檢查結果為不符合權限,proxy 則可以執行如轉址(redirect)等相對應的動作。
  3. 資料預處理:將發出去的請求統一處理格式,例如:語言、時區、客戶代碼、企業代碼等。同理,回傳的資料也可以預先處理,例如:回傳成功資料的處理,回傳失敗資料的處理。

實作的部分了,我們將使用 Node.js、express 搭配 http-proxy-middleware 這個第三方套件實作出一個簡易的 proxy。以下是簡單的程式碼,詳細可以到 http-proxy-middleware Github 中查看。

--

--

黃韋智

黃韋智

自學寫程式,目前爲 React 前端工程師。熱愛旅遊,將近 30 個國家,足跡遍佈亞洲與歐洲。生命與街舞已經離不開,歡迎訂閱 Youtube 頻道:https://www.youtube.com/channel/UCEU-bEDl7R-iGyLVZFae33g