Blog

BLOG

2020.11.24

Node.jsとNode-REDでC#のコードを実行する方法

このエントリーをはてなブックマークに追加

デジタルエンジニアリンググループの宮﨑です。

最近、 IoT 関連の仕事で Node-RED をさわる機会が増えてきており、そんな中で Node-RED で外部の API を使用する機会がありました。
ところがその API は、C++ や .NET 系はサポートしているのですが、残念ながら Javascript は非対応の状態です。
なんとかして Node-RED とその API をつなぐ方法はないかと調べて見たところ、 Node.js と .NET をいい感じに結びつけてくれる Edge.js というライブラリがありましたので、今回はそれをご紹介します。

Node.js や Node-RED って何じゃい!?って方もいらっしゃるでしょうが、そこから説明しだすととても長くなってしまうので、またの機会にさせていただこうと思います。

この Edge.js ですが、 Javascript のオブジェクトを .NET 環境に投げたりその逆もできるので、うまく使いこなすと結構便利だったりしそうです。

私の開発環境が Windows なので、今回は Windows に絞って説明をさせていただきます。

開発環境

  • Windows 10 Pro
  • Node.js v12.4.0
  • Microsoft .NET Core v2.2.207

※今回は、Edge-js をインストールするのですが、この記事の公開時点で Edge-js がサポートしている環境は以下の通りです。

  • Node.js 6.x, 7.x, 8.x, 9.x, 10.x, 11.x, 12.x, 13.x, 14.x
  • .Net Core 1.0.1 - 2.x on Windows/Linux/macOS

Edge-jsをインストール

npm を使って Edge-js をインストールします。

Hello Worldを表示してみる

C# で Hello <文字列>を返す処理を作成し、 Javascript から引数 World を渡して C# 関数をコールします。

  • ファイル名: HelloWorld.js

作成したスクリプトを実行してみましょう。

うまいこと、実行してくれましたね。

C# のソースを実行

つぎは、C# の関数を外に出してみましょう。 .cs ファイルに C# のコードを書きます。

  • ファイル名: HelloWorld.cs

Javascript 側は、 .cs ファイルを指定して関数をコールします。

  • ファイル名: HelloWorld_2.js

実行結果

これもバッチリです。

DLL(ダイナミック リンク ライブラリ)を参照

さすがに C# のソースコードを公開したくないって場合もありますよね。
そんなときは C# 側で DLL を作成して、 JavaScript から参照します。

  • ファイル名: HelloWorld.dll

下記のコードをビルドして、 DLL を作成します。

この DLL を参照してコールする Javascript 。

  • ファイル名: HelloWorld_3.js

実行結果

これも、うまく実行できましたね。
ということで、 Node.js から C# を実行できました。

では、最後に、 Node-RED で C# を実行する方法のご紹介です。

setting.js ファイル修正

Node-RED で Edge-js を使用するには、 setting.js に、 require(‘edge-js’) を追記する必要があります。

function ノードを追加

Node-RED では、 function ノードに Javascript のコードを書きます。

Node-RED で処理を書くのは、後々の管理が大変だったります。
処理の部分を C# などで書いてあげれば、管理の面でも拡張の面でもおすすめです。

Node-RED を使っているという方がいれば、ぜひ使ってみてください。

カレンダー

«11月»
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30      

最近のエントリー

1980年代のとある小学生の遊び

2026.03.30

息子の遊び方と比べながら、私が小学生だった1980年代後半から1990年頃の遊びを振り返りました。缶蹴りやケイドロ、ろくむし、秘密基地づくりなどの外遊びに加え、迷路づくりやミニ四駆、ファミコンといった遊びにも夢中でした。日が暮れるまで友達と遊び、夕方に家へ帰る――そんな懐かしく幸せだった時間を思い出しています。

泣ける卒業ソングBEST3!

2026.03.23

卒業シーズンに聴きたくなる曲を、私の思い出とともにBEST3形式で紹介します。それぞれの曲を聴くと、中学生の頃の悩みや放課後の何気ない時間、小学校の卒業式の記憶がよみがえります。懐かしさや少しの切なさを感じながら、春の節目に前向きな気持ちをもらえる卒業ソングを振り返りました。

宮崎県のパワースポット「高千穂峡」を観光してきました

2026.03.16

宮崎県の人気観光地・高千穂を巡った体験を紹介します。高千穂峡では、阿蘇山の噴火によって形成された柱状節理の渓谷や真名井の滝など、自然が生み出した神秘的な景観を楽しみました。また、高千穂神社や天岩戸神社、西本宮から遥拝する天岩戸、神々が集まったと伝わる天安河原など、日本神話ゆかりの地も巡りました。荒立神社や国見ケ丘にも立ち寄り、自然と神話が息づく高千穂の魅力を満喫した観光の様子をレポートします。

社長を騙りLINEに誘導する「CEO詐欺」の手口【第14回 情報セキュリティブログ】

2026.03.13

近年、社長など企業の代表者を装い、LINEなどの別ツールへ誘導する「CEO詐欺」が増加しています。これは従来のビジネスメール詐欺(BEC)の手口を応用したもので、メールでのやり取りを最小限にすることでセキュリティソフトによる検出を回避しようとする特徴があります。件名や表示名を社長名に偽装するなど巧妙化しており、攻撃の自動化やAIの悪用も指摘されています。こうした状況の中で、不審に思う意識を持ち、社内で情報共有を行うことが被害防止の第一歩となります。

アーカイブ

ブログ内検索

  1. TOP
  2. BLOG
  3. Node.jsとNode-REDでC#のコードを実行する方法