O que estou tentando conseguir é criar um módulo que contenha várias funções nele.
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);
O problema que tenho é que firstParam
é um tipo de objeto e secondParam
uma string de URL, mas quando o tenho sempre reclama que o tipo está errado.
Como posso declarar vários module.exports neste caso?
Respostas:
Você pode fazer algo como:
Ou apenas:
Em seguida, no script de chamada:
fonte
module.exports = {}
e nãomodule.method = ...
. stackoverflow.com/a/26451885/155740module.method
nenhum lugar aqui ... apenasexports.method
, que é apenas uma referênciamodule.exports.method
, então se comporta da mesma maneira. A única diferença é que não definimosmodule.exports
, então o padrão é{}
, a menos que eu esteja enganado.var otherMethod = require('module.js')(otherMethod);
:? Ou seja, essa linha exigiria aotherMethod
função como se fosse a única função na página e a exportação tivesse sidomodule.exports = secondMethod;
:?var otherMethod = require('module.js').otherMethod
.Para exportar várias funções, basta listá-las da seguinte maneira:
E depois acessá-los em outro arquivo:
E então você pode chamar cada função chamando:
fonte
require("./lib/file.js")
? Eu preciso usarrequire("../../lib/file.js")
, caso contrário, não vai funcionar.const { function1, function2, function3 } = require("./lib/file.js")
que lhe permite chamá-los diretamente (por exemplo, emfunction1
vez demyFunctions.function1
) #além da resposta @mash, recomendo que você sempre faça o seguinte:
Observe aqui:
method
a partirotherMethod
e você vai precisar deste monte umVocê também pode usar a mesma técnica para importação:
const {otherMethod} = require('./myModule.js');
fonte
Isso é apenas para minha referência, pois o que eu estava tentando alcançar pode ser conseguido com isso.
No
module.js
Nós podemos fazer algo assim
No
main.js
fonte
module.js:
main.js:
fonte
Se os arquivos forem gravados usando a exportação ES6, você poderá escrever:
fonte
Uma maneira de fazer isso é criar um novo objeto no módulo em vez de substituí-lo.
por exemplo:
e ligar
fonte
Você pode escrever uma função que delega manualmente entre as outras funções:
fonte
usa isto
fonte
Dois tipos de importação e exportação de módulos.
tipo 1 (module.js):
tipo 1 (main.js):
tipo 2 (module.js):
tipo 2 (main.js):
Como usar o módulo de importação?
fonte
também você pode exportar assim
ou para funções anônimas como esta
fonte
module1.js:
main.js
fonte
Existem várias maneiras de fazer isso, uma delas é mencionada abaixo. Suponha que você tenha um arquivo .js como este.
Você pode exportar essas funções usando o seguinte snippet de código,
E você pode usar as funções exportadas usando esse trecho de código,
Sei que esta é uma resposta tardia, mas espero que ajude!
fonte
fonte
Se você declarar uma classe no arquivo de módulo em vez do objeto simples
Arquivo: UserModule.js
Arquivo principal: index.js
fonte
Você também pode usar essa abordagem
ou
fonte
Adicionando aqui alguém para ajudar:
esse bloco de código ajudará a adicionar vários plugins no cypress index.js Plugins -> seleção de arquivos cypress-ntlm-auth e cypress env
fonte