首页 > 解决方案 > nodejs从nodejs应用程序的不同文件夹执行二进制文件

问题描述

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

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

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

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

标签: javascriptnode.js

解决方案


如果我正确理解了这个问题,您想在给定目录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);

官方 Nodejs 文档

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

希望有帮助。


推荐阅读