C#ASP.NETサーバーからNode.js関数を呼び出すことはできますか? Edge.jsライブラリを見つけましたが、理解したとおり、Node.jsがC#を呼び出すことができます。直接逆の解決策が必要です。
Microsoft.AspNetCore.NodeServices
これにより、.NETコードがNode.js環境内のサーバーでJavaScriptを実行するための高速で堅牢な方法が提供されます。これを使用して、ASP.NET Coreアプリの実行時にNPMパッケージの任意の機能を利用できます。
ほとんどのアプリケーション開発者はこれを直接使用する必要はありませんが、実行時に.NETからNode.jsコードを呼び出すことを含む独自の機能を実装する場合は、これを使用できます。
2017年半ば以降、Edge.jsは更新されていません および Microsoft.AspNetCore.NodeServicesは廃止されました 。
私の組織では、ライブラリ Jering.Javascript.NodeJS を維持しています。これは、Microsoft.AspNetCore.NodeServicesが行ったすべてのことを実行します。
Jering.Javascript.NodeJSを使用すると、C#からNodeJSでJavaScriptを呼び出すことができます。この機能により、C#プロジェクトのJavaScriptライブラリとスクリプトを使用できます。
string javascriptModule = @"
module.exports = (callback, x, y) => { // Module must export a function that takes a callback as its first parameter
var result = x + y; // Your javascript logic
callback(null /* If an error occurred, provide an error object or message */, result); // Call the callback when you're done.
}";
// Invoke javascript in Node.js
int result = await StaticNodeJSService.InvokeFromStringAsync<int>(javascriptModule, args: new object[] { 3, 5 });
// result == 8
Assert.Equal(8, result);
クロスプラットフォームのサポート
パフォーマンス 機能
長期実行アプリケーションのサポート
string
形式、Stream
形式、またはディスク上のファイルからのJavaScriptの呼び出しをサポートします。'express'を使用してノードアプリでhttpメソッドを公開し、 'RestSharp'/'HttpClient'を使用して呼び出すだけです