.NET Core開發日誌——Edge.js
阿新 • • 發佈:2018-12-16
最近在專案中遇到這樣的需求:要將舊有系統的一部分業務邏輯整合到新的自動化流程工具中。這套正在開發的自動化工具使用的是C#語言,而舊有系統的業務邏輯則是使用AngularJS在前端構建而成。所以最初的考慮中有兩個解決方案,一是將原有JavaScript程式碼改寫成C#程式碼,以便整合;二是將所需程式碼抽離後將它們放置在通過Node.js搭建的RESTful API裡,再在C#程式碼中以HttpClient呼叫之。
但是之後發現了Edge.js這一有趣的類庫,於是又多了一項選擇。
Edge.js的作用在於連通Node.js與.NET兩個世界。通過其開發者能夠在Node.js程序中呼叫.NET程式碼或者在.NET程序中呼叫Node.js程式碼。
根據需求,這裡是要用到在C#程式碼裡呼叫Node.js,即JavaScript程式碼。
想要了解如何使用該類庫,可以從官網上的例子入手:
class Program { static void Main(string[] args) { var func = Edge.Func(@" return function (data, callback) { callback(null, 'Node.js welcomes ' + data); } "); Console.WriteLine(func(".NET").Result); Console.Read(); } }
首先,需要通過Nuget引入它的類庫,Install-Package Edge.js
。
然後,使用EdgeJs中Edge類的Func靜態方法。該方法需要傳入Node.js中使用的程式碼,並且必須返回一個JavaScript函式。該函式有一個用於外部傳入資料的引數,以及一個回撥函式引數。此回撥函式中的第一個引數為JavaScript中的異常資訊,第二個是返回值。
Edge.Func方法返回的是Func<object,Task