Гость
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / что за ошибка ENOENT ?? / 4 сообщений из 4, страница 1 из 1
19.09.2013, 20:30
    #38402093
zloyGamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что за ошибка ENOENT ??
не могу никак понять, что тут происходит? почему скрипт падает и node выдает что файл не доступен? хотя всевозможные проверки он на ура проходит..
авторfile.name = String("simp.gif"); //length:8
file_path1 = String("d:\program\nodejs\project2_1\upload_files\other\201308\20130819\20130819_20\202356\simp.gif"); //le
ngth:91
file_path2[true] = String("d:\program\nodejs\project2_1\upload_files\other\201308\20130819\20130819_20\202356\simp.gif")
; //length:91
file_path3[true] = String("d:\program\nodejs\project2_1\upload_files\other\201308\20130819\20130819_20\202356\simp.gif")
; //length:91

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


несколькими строчками выше этот файл перемещается в "file_path" и выполняется get_file_info
с 2 проверками с таймаутом, ведь может действительно его что то блокирует??
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
var gm = require('gm');
var im = require('imagemagick');

function get_file_info(file_path,fn){
    console.log(dump.var_dump_node("file_path1",file_path));
    
    fs.exists(file_path,function(exists){
        console.log(dump.var_dump_node("file_path2["+exists+"]",file_path));
        if(exists)//проверка раз
            setTimeout(function(){
                fs.exists(file_path,function(exists){
                    console.log(dump.var_dump_node("file_path3["+exists+"]",file_path));
                    if(exists) //проверка два (файл в это время нигде не запрашивается и не читается)
                        im.readMetadata(file_path,function (err, data){
                           console.log(dump.var_dump_node("data",data));
                      
                           if(err) return fn(err);
                           fn(null,data);
                        });
                });
            
            },2000);
    },2000);
    
    /***
    gm(file_path)
    .identify(function (err, data){
      console.log(dump.var_dump_node("data",data));
      
      if(err) return fn(err);
      fn(null,data);
    });
    ***/
}


из проводника этот файл нормально открывается и в процессе выполнения скрипта и после..
подскажите пожалуйста что тут не так?
...
Рейтинг: 0 / 0
20.09.2013, 12:16
    #38402629
что за ошибка ENOENT ??
zloyGamer, ничего в вопросе не понял, но слеши тут надо хотя бы экранировать
Код: javascript
1.
file_path1 = String("d:\program\nodejs\project2_1\upload_files\other\201308\20130819\20130819_20\202356\simp.gif");
...
Рейтинг: 0 / 0
20.09.2013, 14:56
    #38402838
zloyGamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что за ошибка ENOENT ??
нет, проблема оказалась в самих библиотеках gm и imagemagick, файл доступен но при его чтении с помощью этих библиотечек возникает непонятная ошибка, сейчас ищу другие библиотечки для обработки картинок
...
Рейтинг: 0 / 0
21.09.2013, 10:03
    #38403382
zloyGamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
что за ошибка ENOENT ??
тесты падают из-за того что все эти библиотеки запускают что то типа:
[JS]identify -format %[EXIF:*] "d:\you_file\hehe.jpg"
[/JS]
эта утилита идет в комплекте imagemagick (скачать можно тут http://www.imagemagick.org/script/binary-releases.php )

вообщем 1. скачиваем, 2. устанавливаем, 3. задаем пути к identify от ImageMagick и только тогда запускаем скрипт:
[JS]@SET PATH=%PATH%;c:\Program Files\ImageMagick-6.8.6-Q16
@node.exe script.js[/JS]

а про необходимость наличия imagemagick библиотеки написано в реадми node.js модулях gm и imagemagick,
просто изначально перед установкой нужно внимательно читать readme и не лезть сразу в код если что то не работает (.

кстати не im.readMetadata и не gm.identify у меня так и не заработали(выдают пустые объекты), но зато отлично работает:
[JS] im.identify(['-format', '%wx%h', file_path], function(err, output){
if (err) throw err;
console.log(dump.var_dump_node("im_output",output));
});[/JS]

проблема решена, всем спасибо, добра и удачи
...
Рейтинг: 0 / 0
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / что за ошибка ENOENT ?? / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]