gpt4 book ai didi

node.js - NodeJs 产生 ENOENT 错误(Raspbian)

转载 作者:太空宇宙 更新时间:2023-11-04 00:41:23 24 4
gpt4 key购买 nike

我在生成 NodeJs 脚本时遇到错误:

exec('node ./modules/buttons', function(error, stdout, stderr) {
if(error) console.log(error);
console.log(stdout);
if(stderr) console.log(stderr);
});

Exec 工作得很好。然而产卵

var buttons = spawn('node ./modules/buttons.js', []);
buttons.stdout.on('data', function(data){
console.log(data);
});

给我以下错误:

spawn node ./modules/buttons.js ENOENT

定义脚本的绝对路径会导致相同的错误。如果有人能帮助我解决这个问题,我将不胜感激;我完全不知道这可能是什么原因,谷歌也没有帮助我。

最佳答案

exec 接受要执行的命令以及所有命令行参数,但 spawn、OTOH 接受要调用的程序和作为数组的命令行参数。

在你的例子中,Node.js 正在尝试执行一个名为 node ./modules/buttons.js 的程序,而不是 node./modules/Buttons.js 作为命令行参数。这就是它失败的原因。

引用 spawn 中的示例文档,

const spawn = require('child_process').spawn;
const ls = spawn('ls', ['-lh', '/usr']);

execspawn 之间的区别在于,exec 将默认在 shell 中启动命令,spawn code> 只是调用该程序。

注意:顺便说一句,由于您只是调用 JavaScript 文件,因此最好使用 execFile

关于node.js - NodeJs 产生 ENOENT 错误(Raspbian),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36640982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com