javascript - Nodejs 从 NodeJS 应用程序的不同文件夹执行二进制文件

标签 javascript node.js

我有一个nodejs应用程序从文件夹A执行,二进制X也在文件夹A中执行(使用子进程exec)。二进制 X 在文件夹 A 中生成输出文件 O,因此始终从调用位置开始。

我需要nodejs应用程序来在仲裁文件夹中执行二进制文件X,并在与执行nodejs应用程序A的文件夹不同的文件夹中生成输出O。

所以基本上我需要像在不同的文件夹中一样执行二进制文件。

我想知道在nodejs中是否可以做到这一点以及如何做到这一点? 谢谢

最佳答案

如果我正确理解了问题,您希望 Binary X 在给定目录中输出文件 O 吗?如果我错了,请纠正我。

首先,我会检查二进制文件是否有一个选项来指定文件的输出位置。如果没有,也许解决此问题的最佳方法是设置当前工作目录。

我会执行以下操作:

import {spawn} from 'child_process';
import * as path from 'path';
import * as os from 'os';

const proc = spawn('./binary.exe', [<Array of parameters to binary>], {
  cwd: `${path.join(os.homedir, filename)}.o`
});

proc.stdout.pipe(process.stdout);

The Official Nodejs Docs

cwd 属性是这里的 active 成分。它指定应该从哪里运行二进制文件。 spawn 函数只是以与终端大致相同的方式执行可执行文件和二进制文件。

希望有帮助。

关于javascript - Nodejs 从 NodeJS 应用程序的不同文件夹执行二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61537795/

相关文章:

javascript - 使用 Jasmine 和 Karma 测试 HTML 按钮

javascript - JavaScript 中的 Promise 问题

javascript - 在 JS 中更改类属性 - 更好的性能

node.js - 如何在node.js中使用crypto.createSign和DiffieHellman私钥?

node.js - 使用 node.js 来自 Geoserver 的 GeoJson

mysql - 在哪里放置代码来显示从 MySQL 到 Handlebars 的数据?

javascript - 为什么 Foundation 似乎废弃了 RequireJS 模块?

javascript - 根据浏览器调整输入/输出 div 框大小

javascript - 如何获取实时数据?

javascript - 单击 puppeteer 中的元素后如何等待网络空闲?