Не удается повторить вашу проблему, возможно есть ещё какие-то нюансы запуска? С какими настройками в планировщике вы пытаетесь запустить проект? Пробовали переустанавливать планировщик? Устанавливать его в другую папку? Возможно, стоит попробовать переустановить и планировщик и BAS.
Помогите понять почему не выводится в лог не ошибка не результат при использовании node.js
-
устанавливаю библиотеку node.js "jimp"

Далее выполняю код, код не выдает ошибок или результата и так не только с этой библиотекой с другими такая же история.
const Jimp = require('jimp'); async function compareImages(imagePath1, imagePath2) { const [img1, img2] = await Promise.all([Jimp.read(imagePath1), Jimp.read(imagePath2)]); // Масштабируем изображения к одному размеру, если они разные if (img1.bitmap.width !== img2.bitmap.width || img1.bitmap.height !== img2.bitmap.height) { img1.scaleToFit(img2.bitmap.width, img2.bitmap.height); } const diff = Jimp.diff(img1, img2); const similarity = (1 - diff.percent) * 100; return similarity; } async function run() { try { const imagePath1 = 'C:/FOTO/1.jpg'; const imagePath2 = 'C:/FOTO/2.jpg'; const similarity = await compareImages(imagePath1, imagePath2); console.log(`Сходство между изображениями: ${similarity.toFixed(2)}%`); } catch (error) { console.error('Произошла ошибка:', error); } } run();Если выполнить просто
console.log(`Сходство между изображениями`);все выводится.
Подскажите пожалуйста в чем может быть проблема?
Спасибо. -
@mocard said in Помогите понять почему не выводится в лог не ошибка не результат при использовании node.js:
устанавливаю библиотеку node.js "jimp"
Далее выполняю код, код не выдает ошибок или результата и так не только с этой библиотекой с другими такая же история.
const Jimp = require('jimp'); async function compareImages(imagePath1, imagePath2) { const [img1, img2] = await Promise.all([Jimp.read(imagePath1), Jimp.read(imagePath2)]); // Масштабируем изображения к одному размеру, если они разные if (img1.bitmap.width !== img2.bitmap.width || img1.bitmap.height !== img2.bitmap.height) { img1.scaleToFit(img2.bitmap.width, img2.bitmap.height); } const diff = Jimp.diff(img1, img2); const similarity = (1 - diff.percent) * 100; return similarity; } async function run() { try { const imagePath1 = 'C:/FOTO/1.jpg'; const imagePath2 = 'C:/FOTO/2.jpg'; const similarity = await compareImages(imagePath1, imagePath2); console.log(`Сходство между изображениями: ${similarity.toFixed(2)}%`); } catch (error) { console.error('Произошла ошибка:', error); } } run();Если выполнить просто
console.log(`Сходство между изображениями`);все выводится.
Подскажите пожалуйста в чем может быть проблема?
Спасибо.Потому что у вас синхронный вызов функции run();
-
@mocard said in Помогите понять почему не выводится в лог не ошибка не результат при использовании node.js:
удалил run(); и тоже самое..
Зачем вы удалили вызов функции?
можете по подробнее объяснить в чем баг?
Вам именно объяснить или дать готовое решение?
Объяснение: https://developer.mozilla.org/ru/docs/Learn/JavaScript/Asynchronous/Introducing
Решение, вместо
run();;(async function(){await run()})(); -
Внес изменения и всё равно ничего не выводит, выполняется без ошибок и результата.
const Jimp = require('jimp'); async function compareImages(imagePath1, imagePath2) { const img1 = await Jimp.read(imagePath1); const img2 = await Jimp.read(imagePath2); // Масштабируем изображения к одному размеру, если они разные if (img1.bitmap.width !== img2.bitmap.width || img1.bitmap.height !== img2.bitmap.height) { img1.scaleToFit(img2.bitmap.width, img2.bitmap.height); } const diff = Jimp.diff(img1, img2); const similarity = (1 - diff.percent) * 100; return similarity; } async function run() { try { const imagePath1 = 'C:/FOTO/1.jpg'; const imagePath2 = 'C:/FOTO/2.jpg'; const similarity = await compareImages(imagePath1, imagePath2); console.log(`Сходство между изображениями: ${similarity.toFixed(2)}%`); } catch (error) { console.error('Произошла ошибка:', error); } } (async function() { await run(); })(); -
Думал может проблема в доступе к файлам но нет.. вот пример кода где пытаюсь сравнивать через base64 и таже история.
const Jimp = require('jimp'); async function compareImages(buffer1, buffer2) { const img1 = await Jimp.read(buffer1); const img2 = await Jimp.read(buffer2); // Масштабируем изображения к одному размеру, если они разные if (img1.bitmap.width !== img2.bitmap.width || img1.bitmap.height !== img2.bitmap.height) { img1.scaleToFit(img2.bitmap.width, img2.bitmap.height); } const diff = Jimp.diff(img1, img2); const similarity = (1 - diff.percent) * 100; return similarity; } // Замените [[FOTO1]] и [[FOTO2]] на фактические base64-строки const encodedImage1 = [[FOTO1]]; const encodedImage2 = [[FOTO2]]; const buffer1 = Buffer.from(encodedImage1, 'base64'); const buffer2 = Buffer.from(encodedImage2, 'base64'); compareImages(buffer1, buffer2) .then((similarity) => { console.log(`Сходство между изображениями: ${similarity.toFixed(2)}%`); }) .catch((error) => { console.error('Произошла ошибка:', error); }); -
-
@mocard said in Помогите понять почему не выводится в лог не ошибка не результат при использовании node.js:
@UserTrue Спасибо протестирую.!
Ранее выполнял все классическими функциями в BAS и периодически крашился BAS при сравнении фото. Хочется более качественное решение использовать.А причем тут БАС, это библиотека на Nodejs... Просто ее в модуль обернули