Ошибка: порождать ENOENT в errnoException (child_process.j2:980:11) при использовании Node.js child_process с использованием пользователя без полномочий root

Я столкнулся с этой ошибкой, используя node.js v0.10.12 в MacOS и Linux, этот фрагмент кода отлично работает в Windows 7. Единственное различие заключается в том, что в Windows 7 у меня есть идентификатор администратора, в MacOSX и Linux я не являюсь пользователем root и просто пользователь плана.

Нужно ли нам быть root, чтобы работать с child_process? Любая подсказка о том, почему он не работает на некоторых ОС, а не на всех? Спасибо большое,

Это код:

var spawn = require('child_process').spawn;
 try {
var child = spawn('node', ['plusone.js']);
//call every minute
setInterval(function() {
//
var number = Math.floor(Math.random() * 10000);
child.stdin.write(number +'\n');
child.stdout.once('data', function(data) {
console.log('child replied to '+ number +' with ' +data);
 });     
},1500); 


             child.stderr.on('data', function(data) {
             process.stdout.write(data);

             });


          } catch (e)
         {
           console.log("entering catch block");
          console.log(e);
         }

person hohoho    schedule 08.08.2013    source источник
comment
ENOENT означает, что он не может найти команду/файл, который вы пытаетесь выполнить. node находится в PATH для этого пользователя.   -  person user568109    schedule 08.08.2013


Ответы (1)


Привет всем: я думаю, что я получил свой ответ. Причина, по которой это не работало на другой ОС, - моя конфигурация.

Если не настроить узел на системном пути, чтобы он был доступен везде, если путь не указан.

person saynodejs    schedule 08.08.2013
comment
Я попытался найти в Интернете точно такую ​​​​же проблему, но только для того, чтобы получить много ответов об ImageMagick, хотя он у меня уже был установлен несколько лет назад. Наконец заставил это работать в соответствии с этим. Оказывается, причина в том, что исполняемый файл Debian nodejs называется nodejs вместо node. Простой ln решит проблему. Благодарю вас! - person grapeot; 25.11.2013