1. 程式人生 > >.NET Core開發日誌——Edge.js

.NET Core開發日誌——Edge.js

最近在專案中遇到這樣的需求:要將舊有系統的一部分業務邏輯整合到新的自動化流程工具中。這套正在開發的自動化工具使用的是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