Nodejs GM模块ImageMagick - 奇怪的错误

时间:2015-03-06 10:53:36

标签: node.js heroku imagemagick graphicsmagick

我有一个非常奇怪的错误。我正在使用MAC OS X 10.9.5。 当我使用GM(npm install gm)中的某些函数(如调整大小或其他内容)时会出现此错误。

    events.js:72
            throw er; // Unhandled 'error' event
          ^
    Error: spawn ENOENT
        at errnoException (child_process.js:988:11)
        at Process.ChildProcess._handle.onexit (child_process.js:779:34)

我找到了很多关于它的线索,根据它们我已经安装了graphicksmagic和imagemagick与brew到系统。

brew install imagemagick
brew install graphicsmagick

它工作了一段时间但是没有理由它再次开始显示上述错误。

我检查过我在系统中安装了imagemagick和graphicksmagick,并在终端上工作。 我检查了我是否有$ PATH及其那里。

如果我在nodejs中运行它,它在控制台中显示正确的imagemagick版本,所以我假设在nodejs中路径是正常的。

var sys = require('sys')    
var exec = require('child_process').exec;
        function puts(error, stdout, stderr) {
                if(error)
                        sys.puts(error);
                if(stderr)
                        sys.puts(stderr);
                sys.puts(stdout);
        }
exec("identify --version", puts);

这是崩溃的代码:

gm(request(url), thumbName)
                .resize('300', '300', '^')
                .gravity('Center')
                .crop('300', '300')
                .toBuffer('JPG',function (err, buffer) {
                    var data = {
                        Bucket: bucket,
                        Key: thumbName,
                        Body: buffer,
                        ACL:'public-read',
                        ContentType: 'image/jpeg'
                    };
                    s3.putObject(data, function(err, res) {
                       ....
                    });

当我在heroku上部署它时,一切正常。

1 个答案:

答案 0 :(得分:0)

如果有人有这个问题,我就解决了。 我使用此值将变量PATH添加到节点中的环境变量 仓:node_modules / .bin作为:在/ usr / local / bin中:在/ usr / bin中:/ bin中