Nodo de Error de js: spawn ENOENT

Estoy tratando de convertir SVG a PNG con el nodo js.
Mi código está aquí:

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's domToHTML will lowercase element names
    svgsrc = svgsrc.replace(/radialgradient/g,'radialGradient');
    convert.stdin.write(svgsrc);
    convert.stdin.end();
  }});
}).listen(8888);

Mientras se ejecuta tengo este error (en 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)

He especificado la ruta de acceso para nodejs. Pero no sé por qué no funciona. Cualquier idea acerca de este problema?

InformationsquelleAutor sprabhakaran | 2013-09-17

3 Kommentare

  1. 30

    Es probable falla porque no puede encontrar la convert aplicación. ¿El camino a la convert existen en la RUTA de su entorno? Puede ejecutar convert de su terminal?

    • Derp. Yo no tenía imagemagick instalado. y fue el uso de la mangosta en miniatura. Gracias!
    • Para otros, véase también este problema. Simplemente la sustitución de spawn por exec solucionado todos mis problemas (binaria con linux en la RUTA de acceso con permisos de no ejecutar).
    • Es allí una manera de especificar que la dependencia a fin de que npm install indica el modo de instalar el paquete?
  2. 1

    Tuve este mismo problema se ejecuta en Linux. Hice el npm install unoconv y pensaba que se haría cargo de la instalación de convertir la aplicación, pero sólo cuando yo lo había instalado podría llegar a ejecutar en Node.js
    sudo apt-get install unoconv

  3. 0

    Estaba recibiendo el error

    Uncaught Error: spawn myExeCommand ENOENT

    Una vez que he añadido ‘opciones’ para el desove(), funcionó.

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

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea