Подтвердить что ты не робот

Node js Ошибка: spawn ENOENT

Я пытаюсь преобразовать SVG в PNG с помощью node js. Мой код здесь:

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'image/png'});
  var convert = child_proc.spawn("convert", ["svg:", "png:-"]),
      values = (url.parse(req.url, true).query['values'] || ".5,.5")
        .split(",")
        .map(function(v){return parseFloat(v)});

  convert.stdout.on('data', function (data) {
    res.write(data);
  });
  convert.on('exit', function(code) {
    res.end();
  });

  jsdom.env({features:{QuerySelector:true}, html:htmlStub, scripts:scripts, done:function(errors, window) {
    var svgsrc = window.insertPie("#pie", w, h, values).innerHTML;
    //jsdom domToHTML will lowercase element names
    svgsrc = svgsrc.replace(/radialgradient/g,'radialGradient');
    convert.stdin.write(svgsrc);
    convert.stdin.end();
  }});
}).listen(8888);

Во время выполнения я получил эту ошибку (в MAC)

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: spawn ENOENT
    at errnoException (child_process.js:980:11)
    at Process.ChildProcess._handle.onexit (child_process.js:771:34)

Я указал путь для nodejs. Но я не знаю, почему он терпит неудачу. Любая идея об этой проблеме?

4b9b3361

Ответ 1

Вероятно, он не работает, потому что он не может найти приложение convert. Существует ли путь к convert в вашей среде PATH? Вы можете запустить convert с вашего терминала?

Ответ 2

У меня была эта же проблема, запущенная из Linux. Я сделал npm install unoconv и подумал, что это позаботится об установке конвертирующего приложения, но только когда я его установил, я могу запустить его в Node.js sudo apt-get install unoconv

Ответ 3

Я получаю ошибку

Uncaught Error: spawn myExeCommand ENOENT

Как только я добавил 'options' в spawn(), это сработало.

let options = {shell: true};
let theProcess = child_process.spawn(myExeCommand, null, options);