Lo que intento lograr es crear un módulo que contenga múltiples funciones.
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);
El problema que tengo es que firstParam
es un tipo de objeto y secondParam
es una cadena de URL, pero cuando lo tengo, siempre se queja de que el tipo es incorrecto.
¿Cómo puedo declarar exportaciones de módulos múltiples en este caso?
Respuestas:
Puedes hacer algo como:
O solo:
Luego, en el script de llamada:
fuente
module.exports = {}
y nomodule.method = ...
. stackoverflow.com/a/26451885/155740module.method
ningún lugar aquí ... soloexports.method
, que es solo una referenciamodule.exports.method
, por lo que se comporta de la misma manera. La única diferencia es que no definimosmodule.exports
, por lo que por defecto es{}
, a menos que me equivoque.var otherMethod = require('module.js')(otherMethod);
:? Es decir, ¿esa línea requeriría laotherMethod
función como si fuera la única función en la página y la exportación hubiera sidomodule.exports = secondMethod;
:?var otherMethod = require('module.js').otherMethod
.Para exportar múltiples funciones, simplemente puede enumerarlas así:
Y luego para acceder a ellos en otro archivo:
Y luego puede llamar a cada función llamando:
fuente
require("./lib/file.js")
? Necesito usarrequire("../../lib/file.js")
, de lo contrario no funcionará.const { function1, function2, function3 } = require("./lib/file.js")
que le permite llamarlos directamente (por ejemplo, enfunction1
lugar demyFunctions.function1
)Además de la respuesta @mash, te recomiendo que hagas siempre lo siguiente:
Nota aquí:
method
desdeotherMethod
y lo necesitará muchoTambién puede usar la misma técnica para importar:
const {otherMethod} = require('./myModule.js');
fuente
Esto es solo para mi referencia, ya que lo que estaba tratando de lograr se puede lograr con esto.
En el
module.js
Podemos hacer algo como esto
En el
main.js
fuente
module.js:
main.js:
fuente
Si los archivos se escriben utilizando la exportación ES6, puede escribir:
fuente
Una forma de hacerlo es creando un nuevo objeto en el módulo en lugar de reemplazarlo.
por ejemplo:
y llamar
fuente
Puede escribir una función que delegue manualmente entre las otras funciones:
fuente
utilizar este
fuente
Módulo de dos tipos de importación y exportación.
tipo 1 (module.js):
tipo 1 (main.js):
tipo 2 (module.js):
tipo 2 (main.js):
¿Cómo usar el módulo de importación?
fuente
también puedes exportarlo así
o para funciones anónimas como esta
fuente
module1.js:
main.js
fuente
Hay varias formas de hacer esto, una de ellas se menciona a continuación. Solo asume que tienes un archivo .js como este.
Puede exportar estas funciones utilizando el siguiente fragmento de código,
Y puede usar las funciones exportadas usando este fragmento de código,
Sé que esta es una respuesta tardía, ¡pero espero que esto ayude!
fuente
fuente
Si declara una clase en el archivo de módulo en lugar del objeto simple
Archivo: UserModule.js
Archivo principal: index.js
fuente
Puedes usar este enfoque también
o
fuente
Agregando aquí para que alguien ayude:
este bloque de código ayudará a agregar múltiples complementos en cypress index.js Plugins -> selección de archivos cypress-ntlm-auth y cypress env
fuente