2015-01-08 2 views
0

나는 내가 API 생성을 위해 restify 사용 nodeJS에있는 Imagemagick를 사용하여 NodeJs 0.10 응용 프로그램 (GM)이미지 포맷을 얻을 수 없다 - 산란 오류

을 쓰고 있어요을 EACCES.

업로드 된 파일이 형식인지 확인하여 이미지인지 확인하려고합니다.

/tmp/upload_72052b3fede5faccfe4cf20b59b341f2

해당 파일에 대한 LS의 -lsa 결과를 초래 request.files.drink_image.path를 이용하여 업로드 된 이미지로 페치있어 :

-rw-r--r-- 1 ufk users 8255 Jan 8 12:02 /tmp/upload_8ee3f234f8c04c67430f28f1336e9ba6 

그 파일에 대한 파일의 결과 :

/tmp/upload_8ee3f234f8c04c67430f28f1336e9ba6: PNG image data, 250 x 100, 8-bit/color RGB, non-interlaced 

사용자 ufk에서 nodeJS를 실행 중입니다.

나는 다음과 같은 코드를 사용하여 형식을 인출하려고하면이에 의해 생성 된 이후 나는 액세스 오류가 발생하는 이유는 아무 생각이

{ [Error: spawn EACCES] code: 'EACCES', errno: 'EACCES', syscall: 'spawn' } 

: 나는 다음과 같은 오류가

 gm(tempFilePath).format(function(err, value){ 
     console.log(inspect(err)); 
     console.log(value); 
     }); 

을 사용자 ufk이며 rw으로 설정됩니다.

어떤 아이디어가 있습니까?

갱신

확인 난 ImageMagick이 나 GraphicsMagick가 설치되어 있지 않았다. 이제 작동합니다! 그러나 올바른 오류 메시지를 표시하기 위해 ImageMagick 또는 GraphicsMagicK가 설치되어 있으면 nodeJS에서 어떻게 확인할 수 있습니까?

답변

1

'which'쉘 명령을 사용하여 'gm'실행 파일을 확인할 수 있습니다.

if (!which('gm')) { 
    // gm is not installed 
    // return error message 
} 

당신은 조금 더 갈 수 있으며, 이것이 바로 실행되어 있는지 확인 : https://github.com/arturadib/shelljs을 시도

var e = exec('gm -version'); 
if (e.code !== 0) { 
    // error 
} 
// parse e.output to make sure the right version is installed 
// e.g. GraphicsMagick 1.3.18 2013-03-10 Q16 http://www.GraphicsMagick.org/ 
관련 문제