export w js (node)

0

Cześć,

Mam takie wyzwanie, napisałem sobie krótki program, który generuje dane losowych ludzi. I zgodnie z najlepszymi praktykami do osobnych plików wydzieliłem funkcje (function.js), a także ustawienia (setings.js). Sam kod generujący znajduje się w pliku app.js.

W momencie, gdy wyeksportowałem funkcję randchoice() do pliku app (1), nie mogłem już z niej skorzystać z powodu braku definicji (3) w funkcji randName() (2). Wstępnie rozwiązałem problem za pomocą zdublowania funkcji bez eksportu (4), ale nie jest to zgodne z dobrymi praktykami. Inną opcją jest również opcja by powtórzyć w innych funkcjach w pliku function.js kod z funkcji randchoice(), ale to też łamie ta sama zasadę.

Czy ktoś ma jakiś pomysł jak to rozwiązać? Jakieś inne rozwiązanie?

screenshot-20200827224413.png

3

Przypisujac funkcje w momencie jej zdefiniowania do "module.exports" tak naprawde sprawiasz, że staje się ona anonimowa (i nie da sie jej wywolać po nazwie, tylko po nazwie zmiennej do której została przypisana). Napisz po prostu na dole pliku "module.exports = randChoice" (a to przypisanie na górze skasuj).

1

Przypisujesz funkcję prosto do eksportu. To że nazwałeś ją randChoice daje tylko tyle, że funkcja będzie miała pole name z tą nazwą. Nie powstanie zmienna w scope o tej nazwie.

Zdefiniuj tę funkcję wyżej bez przypisania i zrób exports.randChoice = randChoice.

0

Dziękuję :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1