2016-06-23 33 views
1

我想從Electron中觸發一個JS文件。如果我在終端中嘗試命令節點test.js,它工作正常。如果我在Electron中嘗試相同的操作,則會收到錯誤Uncaught Error: spawn node test.js ENOENT。如果我走錯了路,你能糾正我嗎?如何觸發Electron中的node filename.js文件?

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); 
}); 

在此先感謝。

回答

0

檢出this answer包含幾個很好的方法來嘗試和調試此錯誤類型。

0

極端晚到派對,但節點的fork完全是爲了運行外部節點文件而存在。

parent.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' }); 

child.js

process.on('message', (msg) => { 
    console.log('Message from parent:', msg); 
}); 

let counter = 0; 

setInterval(() => { 
    process.send({ counter: counter++ }); 
}, 1000); 

實施例從this freecodecamp tutorial on Node.js child processes無恥服用。

P.S .:第一個答案中的鏈接SO帖子中有更多關於ENOENT錯誤的信息,涉及spawn