• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

NodeJS błąd podczas uruchomienia prostego skryptu

Object Storage Arubacloud
0 głosów
165 wizyt
pytanie zadane 18 stycznia 2019 w JavaScript przez BlvckFox Gaduła (4,240 p.)

Witam, chciałem pobrać nazwę aktywnego okna w nodejs. W npm znalazłem moduł który by mi na to pozwolił, nazywa się "active-window", działa ale dzięki niemu można pobrać nazwę tylko raz, przy drugim pobraniu program się crashuje. Poszukałem dalej i znalazłem "active-win" . Użyłem kodu z dokumentacji:
 

const activeWin = require('active-win');
 
(async () => {
    console.log(await activeWin());
})();

ale tu też pojawił się problem:
 

(node:2884) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Could not locate the bindings file. Tried:
 → C:\Users\Lenovo\node_modules\ref-napi\build\binding.node
 → C:\Users\Lenovo\node_modules\ref-napi\build\Debug\binding.node
 → C:\Users\Lenovo\node_modules\ref-napi\build\Release\binding.node
 → C:\Users\Lenovo\node_modules\ref-napi\out\Debug\binding.node
 → C:\Users\Lenovo\node_modules\ref-napi\Debug\binding.node
 → C:\Users\Lenovo\node_modules\ref-napi\out\Release\binding.node
 → C:\Users\Lenovo\node_modules\ref-napi\Release\binding.node
 → C:\Users\Lenovo\node_modules\ref-napi\build\default\binding.node
 → C:\Users\Lenovo\node_modules\ref-napi\compiled\8.9.4\win32\x64\binding.node
(node:2884) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

 

1 odpowiedź

0 głosów
odpowiedź 18 stycznia 2019 przez Milesq Nałogowiec (32,020 p.)

Błąd mówi o tym że masz nie złapany wyjątek z promisa ;)

kod powinien być w bloku try...catch

const activeWin = require('active-win');
  
(async () => {
    try {
    console.log(await activeWin()); 
    } catch(err) {
         console.log(err);
    }
})();

przy czym 

console.log(await activeWin());

to chyba wyświetli promise więc powinno być tak:

let name = await activeWin();
console.log(name);

 

komentarz 19 stycznia 2019 przez BlvckFox Gaduła (4,240 p.)
let name = await activeWin();
                 ^^^^^^^^^

SyntaxError: Unexpected identifier

 

komentarz 19 stycznia 2019 przez ShiroUmizake Nałogowiec (46,300 p.)

async ActiveWIn() {

async jaskaFunkcja() {
let promises = new Promise((resolve, reject) => this.activeWin());
await console.log(promises);
}

wrapowane w asuync chyba nie muszę pisać.
w glownej:
await jakasFunkcja();

}

komentarz 19 stycznia 2019 przez BlvckFox Gaduła (4,240 p.)
Sprawdzałeś u siebie czy to działa? "Nie umiem w promisy" w javascripcie, a kod podany w dokumentacji z samego faktu, że jest tam napisany powinien działać bez zmieniania czegokolwiek. "wrapowane w asuync chyba nie muszę pisać. w glownej:" Nie wiem co z tym zrobić. Czym jest wrapowanie w asyncu?
komentarz 19 stycznia 2019 przez ShiroUmizake Nałogowiec (46,300 p.)
Promisy to podstawa nodejs, będziesz miał problem wieloma operacjami. Tu jest fajnie wytłumaczone:

https://javascript.info/async-await

Przeczytasz to zrozumiesz swój problem ;)
komentarz 20 stycznia 2019 przez BlvckFox Gaduła (4,240 p.)
Przeczytanie, zrozumienie i nauczenie się promisów zajmie dużo czasu, chciałbym tylko żeby ten skrypt działał poprawnie, a nie wiem co ten pseudokod miał mi powiedzieć. Promisy w swoim czasie ale teraz potrzebuję tylko nazwy okna
komentarz 20 stycznia 2019 przez ShiroUmizake Nałogowiec (46,300 p.)
Dać Ci podpowiedż. Jak dalej jej nie rozumiesz, to dalej nie rozumiesz promisów.

Podobne pytania

+1 głos
2 odpowiedzi 268 wizyt
+1 głos
2 odpowiedzi 238 wizyt
0 głosów
1 odpowiedź 141 wizyt
pytanie zadane 19 grudnia 2017 w JavaScript przez UltraSF Stary wyjadacz (11,740 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...