2012-02-22 75 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"; 

我不知道是否有一個更優雅的解決方案。