Ошибка imagemagick на node.js - PullRequest
       23

Ошибка imagemagick на node.js

0 голосов
/ 22 февраля 2012

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

    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

любая идея и проблема

Ответы [ 3 ]

2 голосов
/ 13 февраля 2013

Может быть, этот ответ поможет кому-то еще ... Я отредактировал identif.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";

Я не знаю, есть ли более элегантное решение.

0 голосов
/ 02 марта 2012

Вы уже изолировали ошибку для определенной кодовой строки?

Если нет, хорошо, мы получили немного информации для отладки:

Система не может найти указанный файл

У вас уже может быть сбой, где может быть проблема, поэтому пройдите все операции ввода-вывода и попробуйте устранить одну за другой. Отладка с помощью console.log или вашего любимого метода, чтобы найти выход.

0 голосов
/ 01 марта 2012

Убедитесь, что 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 и Forking API в Node.JS .

Еще одна вещь.Не забудьте процитировать пути, в которых есть пробелы и специальные символы, перед передачей их в командной строке.Это избавит вас от головной боли и поиска ошибок.

С небольшой информацией, которую вы предоставляете, это все, что я могу ответить.Поэтому ответ не совсем конкретен для вашего случая.Если вам нужно больше от этого веб-сайта (SO), вы должны по крайней мере предоставить достаточно кода и даже лучше завершить (т.е. запустить) код, который содержит только проблемную часть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...