powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / что за ошибка ENOENT ??
4 сообщений из 4, страница 1 из 1
что за ошибка ENOENT ??
    #38402093
zloyGamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не могу никак понять, что тут происходит? почему скрипт падает и 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
что за ошибка ENOENT ??
    #38402629
zloyGamer, ничего в вопросе не понял, но слеши тут надо хотя бы экранировать
Код: javascript
1.
file_path1 = String("d:\program\nodejs\project2_1\upload_files\other\201308\20130819\20130819_20\202356\simp.gif");
...
Рейтинг: 0 / 0
что за ошибка ENOENT ??
    #38402838
zloyGamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, проблема оказалась в самих библиотеках gm и imagemagick, файл доступен но при его чтении с помощью этих библиотечек возникает непонятная ошибка, сейчас ищу другие библиотечки для обработки картинок
...
Рейтинг: 0 / 0
что за ошибка ENOENT ??
    #38403382
zloyGamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тесты падают из-за того что все эти библиотеки запускают что то типа:
[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
4 сообщений из 4, страница 1 из 1
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / что за ошибка ENOENT ??
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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