我正在尝试从Electron触发一个JS文件。如果我在终端中尝试命令节点测试.js它工作正常。如果我在 Electron 中尝试同样的事情,我会收到一个错误Uncaught Error: spawn node test.js ENOENT
.如果我走错了路,你能纠正我吗?
var spawn = require('child_process').spawn;
var executeSpawn = spawn('node test.js',{
cwd: process.resourcesPath+'/app/test.js'});
executeSpawn.stdout.on('data',function(data){
console.log(`data:${data}`);
});
executeSpawn.stderr.on('data',function(data){
console.log("data:",data);
});
executeSpawn.on('close',function(ev){
console.log("ev",ev);
});
提前谢谢。
查看此答案,其中包含几种尝试调试此错误类型的好方法。
派对非常晚,但节点的fork
正是为了运行外部节点文件而存在的。
父.js
const { fork } = require('child_process');
const forked = fork('child.js');
forked.on('message', (msg) => {
console.log('Message from child', msg);
});
forked.send({ hello: 'world' });
孩子.js
process.on('message', (msg) => {
console.log('Message from parent:', msg);
});
let counter = 0;
setInterval(() => {
process.send({ counter: counter++ });
}, 1000);
示例无耻地取自这个关于 Node.js 子进程的 freecodecamp 教程。
PS:第一个答案中链接的SO帖子有关于spawn
ENOENT
错误的更多信息。