2017-05-29 54 views
0

在node.js中,我想創建一個運行exe的子進程(由我的c#代碼創建)。我想將一些數據從node.js傳遞給exe,然後從exe中取回數據。如何從節點運行c#exe子進程並來回接收消息?

這可能嗎?

感謝

+0

是否必須是兒童過程?它必須是可執行文件嗎?如果兩個問題的答案都是否定的,你可以使用[Edge](https://github.com/tjanczuk/edge)。 – Aron

+0

也許結帳...... http://tjanczuk.github.io/edge/#/ ...和https://www.hanselman.com/blog/ItsJustASoftwareIssueEdgejsBringsNodeAndNETTogetherOnThreePlatforms.aspx – Mick

+0

我可以使用這個,但我怎麼將數據從c#發回node.js?我也使用這三個導入在C#'使用系統; 使用Microsoft.Office.Interop.Word; using System.Text.RegularExpressions;'我將如何將它們加載到node.js中? – omega

回答

1

數據可以傳遞到子進程的環境變量或標準輸入和子進程可以通過寫入標準輸出發送數據。像這樣:

const testData = JSON.stringify({ a: 1, b: 2 }); 
const result = require('child_process').execSync('printenv TEST_DATA',{ 
    env: { TEST_DATA: testData } 
}); 
console.log(JSON.parse(result)); 

const result = require('child_process').execSync('cat',{ 
    input: testData 
}); 
0

正如其他人所說,你可以打電話的過程中,作爲參數傳遞,我只想傳遞參數,並把它從磁盤讀取數據。因此,只需將它傳遞給文件的位置並讓C#程序讀取這些文件即可。不需要傳遞文件本身。

+0

參數將是字符串,雖然 – omega

+0

?不知道爲什麼這是一個問題。如果你想給你的C#程序一個word文件,你可以給它一個url的字符串,然後它可以加載它。我錯過了什麼嗎? – Kelly

+0

只是想知道我是否可以傳遞字符串 – omega