繁体   English   中英

节点js错误:生成ENOENT

[英]Node js Error: spawn ENOENT

我试图用节点js将SVG转换为PNG。 我的代码在这里:

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

执行时我收到此错误(在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指定了路径。 但我不知道它失败的原因。 对这个问题有什么看法吗?

它可能会失败,因为它无法找到convert应用程序。 convert路径是否存在于您的环境PATH中? 你可以从终端运行convert吗?

我从Linux运行同样的问题。 我做了npm install unoconv并认为这将负责安装转换应用程序,但只有当我安装它时才能让它在Node.js中运行sudo apt-get install unoconv

我收到了错误

Uncaught Error: spawn myExeCommand ENOENT

一旦我将“选项”添加到spawn(),它就可以了。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM