2012-02-22 70 views
0

我越来越喜欢这个ImageMagick的错误

node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^
Error: Command failed: CreateProcessW: The system cannot find the file specified 
. 

    at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\imagemagic 
k\imagemagick.js:64:15) 
    at ChildProcess.emit (events.js:70:17) 
    at maybeExit (child_process.js:361:16) 
    at Socket.<anonymous> (child_process.js:466:7) 
    at Socket.emit (events.js:67:17) 
    at Array.0 (net.js:320:10) 
    at EventEmitter._tickCallback (node.js:192:40) 

图像路径误差都很好&操作节点v0.6.11 & ImageMagick的v0.1.2

任何想法生根粉问题

+0

看起来它无法找到ImageMagick的可执行文件。你提供的绝对路径? – 2012-02-22 13:27:25

+0

@LinusGThiel我给出的绝对路径和即时消息存在 – 2012-02-22 13:55:51

+0

如果你启动节点REPL并发出命令发生了:'要求(“FS”)statSync(PATH_TO_IM)'? – 2012-02-22 14:02:53

回答

0

确保已安装ImageMagic和可用环境路径内。首先尝试从命令行使用它,然后自己执行操作,而不是使用任何其他节点模块。

如果它工作正常,那么你可以使用child_process.exec() API这样的:

var util = require('util'), 
    exec = require('child_process').exec, 
    child; 

child = exec('cat *.js bad_file | wc -l', 
    function (error, stdout, stderr) { 
    console.log('stdout: ' + stdout); 
    console.log('stderr: ' + stderr); 
    if (error !== null) { 
     console.log('exec error: ' + error); 
    } 
}); 

欲了解更多信息。检查这个Process and Forking API in Node.JS

还有一件事。不要忘记在将它们传递到命令行之前引用其中包含空格和特殊字符的路径。这将为您节省很多头痛和寻找bug。

与您提供,这是所有我能回答的信息很少。这就是为什么答案不完全针对你的情况。如果您需要从本网站更多(SO)你至少应该提供足够的代码,甚至更好的完成(即运行的)代码,只包含了有争议的部分。

0

您是否已经找出错误的具体程序代码?

如果没有,OK,我们得到的信息一点一点进行调试:

该系统找不到指定的文件

你已经可以有毛刺那里的问题可能是,所以通过所有I/O操作并尝试逐个消除。使用console.log或您最喜爱的方法进行调试,找到您的方法。

2

也许这个回答可以帮助别人...... 我编辑identify.path和convert.path和工作

var img = require('imagemagick'); 
im.identify.path = "C:/Program Files/ImageMagick-6.8.2-Q16/identify"; 
im.convert.path = "C:/Program Files/ImageMagick-6.8.2-Q16/convert"; 

我不知道是否有一个更优雅的解决方案。