child_process spawn如何传递参数并且接收参数
时间: 2023-07-07 15:03:35 浏览: 156
在使用 `child_process.spawn()` 方法时,可以将要执行的命令作为第一个参数传递给该方法,并将其余的参数放在一个数组中作为第二个参数传递给该方法。这些参数将作为命令的参数传递给子进程。
例如,以下代码将会执行一个名为 `myScript.js` 的脚本,并将一个名为 `arg1` 的参数和一个名为 `arg2` 的参数传递给该脚本:
```javascript
const { spawn } = require('child_process');
const child = spawn('node', ['myScript.js', 'arg1', 'arg2']);
child.stdout.on('data', (data) => {
console.log(`child stdout:\n${data}`);
});
child.stderr.on('data', (data) => {
console.error(`child stderr:\n${data}`);
});
child.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
```
在子进程中,你可以通过 `process.argv` 属性来获取传递给脚本的参数。例如,以下代码将会输出 `arg1` 和 `arg2`:
```javascript
console.log(process.argv[2]); // 输出 'arg1'
console.log(process.argv[3]); // 输出 'arg2'
```
请注意,在 `process.argv` 中,第一个元素是 Node.js 的可执行文件路径,第二个元素是正在执行的 JavaScript 文件的路径,其余的元素是传递给脚本的参数。