Staram się stworzyć jeden moduł, który zawiera wiele funkcji.
module.js:
module.exports = function(firstParam) { console.log("You did it"); },
module.exports = function(secondParam) { console.log("Yes you did it"); },
// This may contain more functions
main.js:
var foo = require('module.js')(firstParam);
var bar = require('module.js')(secondParam);
Problem, który mam, polega na tym, że firstParam
jest to typ obiektu, a secondParam
jest to ciąg adresu URL, ale gdy mam, zawsze narzeka, że ten typ jest nieprawidłowy.
Jak mogę zadeklarować wiele eksportów module.w tym przypadku?
Odpowiedzi:
Możesz zrobić coś takiego:
Lub tylko:
Następnie w skrypcie wywołującym:
źródło
module.exports = {}
i niemodule.method = ...
. stackoverflow.com/a/26451885/155740module.method
Nigdzie tu nie używam ... tylkoexports.method
, co jest tylko odniesieniemmodule.exports.method
, więc zachowuje się tak samo. Jedyną różnicą jest to, że nie zdefiniowaliśmymodule.exports
, więc domyślnie{}
, chyba że się mylę.var otherMethod = require('module.js')(otherMethod);
? Tj. Czy ta linia wymagałabyotherMethod
funkcji tak, jakby była jedyną funkcją na stronie, a eksport byłmodule.exports = secondMethod;
:?var otherMethod = require('module.js').otherMethod
.Aby wyeksportować wiele funkcji, możesz po prostu wymienić je w następujący sposób:
A następnie, aby uzyskać do nich dostęp w innym pliku:
Następnie możesz wywołać każdą funkcję, wywołując:
źródło
require("./lib/file.js")
? Muszę użyćrequire("../../lib/file.js")
, inaczej to nie zadziała.const { function1, function2, function3 } = require("./lib/file.js")
co pozwala na bezpośrednie dzwonienie do nich (np.function1
ZamiastmyFunctions.function1
)oprócz odpowiedzi @mash polecam zawsze wykonać następujące czynności:
Uwaga tutaj:
method
zotherMethod
i będziesz tego bardzo potrzebowaćMożesz również użyć tej samej techniki do importowania:
const {otherMethod} = require('./myModule.js');
źródło
To jest tylko moje odniesienie, ponieważ to, co próbowałem osiągnąć, może zostać osiągnięte przez to.
w
module.js
Możemy zrobić coś takiego
w
main.js
źródło
module.js:
main.js:
źródło
Jeśli pliki są zapisywane przy użyciu eksportu ES6, możesz napisać:
źródło
Jednym ze sposobów na to jest utworzenie nowego obiektu w module zamiast jego zamiany.
na przykład:
i zadzwonić
źródło
Możesz napisać funkcję, która ręcznie deleguje między innymi funkcjami:
źródło
Użyj tego
źródło
Dwa typy importu i eksportu modułu.
typ 1 (module.js):
typ 1 (main.js):
typ 2 (module.js):
typ 2 (main.js):
Jak korzystać z modułu importu?
źródło
możesz także wyeksportować go w ten sposób
lub dla takich anonimowych funkcji
źródło
moduł1.js:
main.js
źródło
Można to zrobić na wiele sposobów, jeden ze sposobów wymieniono poniżej. Załóżmy, że masz taki plik .js.
Możesz wyeksportować te funkcje za pomocą następującego fragmentu kodu,
Możesz użyć wyeksportowanych funkcji za pomocą tego fragmentu kodu,
Wiem, że to późna odpowiedź, ale mam nadzieję, że to pomoże!
źródło
źródło
Jeśli zadeklarujesz klasę w pliku modułu zamiast prostego obiektu
Plik: UserModule.js
Główny plik: index.js
źródło
Możesz także użyć tego podejścia
lub
źródło
Dodanie tutaj, aby ktoś mógł pomóc:
ten blok kodu pomoże dodać wiele wtyczek do cypress index.js Wtyczki -> cypress-ntlm-auth i wybór pliku env cypress
źródło