根据建议更新任务。现在我可以调用控制台应用程序。
创建C#控制台应用程序,如下所示:
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(args[0]);
Console.WriteLine(args[1]);
Console.WriteLine(args[2]);
Console.WriteLine("random text");
// Want to invoke this from Node JS API endpoint. Also want to pass some parameters from Node JS. This method will have code
// to generate excel template.
}
}
}
尝试从nodejs调用exe,如下所示
const exec = require('child_process');
const child = exec.execFile('ConsoleApplication1.exe', ['arg1', 'arg2', 'arg3'], function (error, stdout, stderr) {
if (error) {
throw error;
}
console.log(stdout);
});
在节点执行后,我看到condole.log(stdout)正在打印所有4个值,如下所示: ARG1 ARG2 ARG3 随机文本
感谢您的建议!我有一个后续问题。我观察到,我在C#main方法中有4行console.writeline。节点在stdout中返回这4个字符串。这是我们如何从C#exe获取输出?例如如果我从C#exe中的main方法中删除所有代码行,则节点不会打印任何内容。