Declarar múltiples module.exports en Node.js

Resuelto Ali asked hace 11 años • 21 respuestas

Lo que intento lograr es crear un módulo que contenga múltiples funciones.

módulo.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 es firstParamun tipo de objeto y secondParames una cadena de URL, pero cuando lo tengo siempre se queja de que el tipo es incorrecto.

¿Cómo puedo declarar múltiples module.exports en este caso?

Ali avatar May 19 '13 10:05 Ali
Aceptado

Puedes hacer algo como:

module.exports = {
    method: function() {},
    otherMethod: function() {},
};

O solo:

exports.method = function() {};
exports.otherMethod = function() {};

Luego en el script de llamada:

const myModule = require('./myModule.js');
const method = myModule.method;
const otherMethod = myModule.otherMethod;
// OR:
const {method, otherMethod} = require('./myModule.js');
mash avatar May 19 '2013 03:05 mash

Para exportar múltiples funciones, simplemente puede enumerarlas así:

module.exports = {
   function1,
   function2,
   function3
}

Y luego para acceder a ellos en otro archivo:

var myFunctions = require("./lib/file.js")

Y luego puedes llamar a cada función llamando a:

myFunctions.function1
myFunctions.function2
myFunctions.function3
Devorah avatar Jul 03 '2016 21:07 Devorah