432 Stimmen

Mehrere module.exports in Node.js deklarieren

Was ich versuche zu erreichen, ist es, ein Modul zu erstellen, das mehrere Funktionen darin enthält.

module.js:

module.exports = function(firstParam) { console.log("Du hast es geschafft"); },
module.exports = function(secondParam) { console.log("Ja, du hast es geschafft"); }, 
// Hier können mehr Funktionen enthalten sein

main.js:

var foo = require('module.js')(firstParam);
var bar = require('module.js')(secondParam);

Das Problem, das ich habe, ist, dass firstParam ein Objekttyp ist und secondParam ein URL-String ist, aber wenn ich das habe, beschwert es sich immer, dass der Typ falsch ist.

Wie kann ich in diesem Fall mehrere module.exports deklarieren?

5voto

Siddharth Punkte 535

Verwenden Sie dieses

(function()
{
  var exports = module.exports = {};
  exports.yourMethod =  function (success)
  {

  }
  exports.yourMethod2 =  function (success)
  {

  }

})();

5voto

bahri noredine Punkte 671

Auch so können Sie es exportieren

const func1 = function (){etwas Code hier}
const func2 = function (){etwas Code hier}
exports.func1 = func1;
exports.func2 = func2;

oder für anonyme Funktionen wie diese

    const func1 = ()=>{etwas Code hier}
    const func2 = ()=>{etwas Code hier}
    exports.func1 = func1;
    exports.func2 = func2;

4voto

In Ihrem Knotenmodul können Sie verschiedene Funktionen exportieren, z. B .:

module.exports.eat = eat;

function eat() {
  .......
  return *something*;
};

module.exports.sleep = sleep;

function sleep() {
  .......
  return *something*;
};

Beachten Sie, dass Sie die Funktionen nicht aufrufen, während Sie sie exportieren. Dann beim Erfordern der Module können Sie sie wie folgt anfordern:-

const task = require(__dirname + "/task.js");
//task ist der Name der Datei

let eat = task.eat();
let sleep = task.sleep();

3voto

illvart Punkte 607

Zwei Arten von Modulimport und -export.

Typ 1 (module.js):

// Modul wie eine Webpack-Konfiguration
const development = {
  // ...
};
const production = {
  // ...
};

// Mehrfach exportieren
module.exports = [development, production];
// Einzelnes exportieren
// module.exports = development;

Typ 1 (main.js):

// Modulimport wie eine Webpack-Konfiguration
const { development, production } = require("./pfad/zum/modul");

Typ 2 (module.js):

// Modulfunktion ohne Parameter
const module1 = () => {
  // ...
};
// Modulfunktion mit Parametern
const module2 = (param1, param2) => {
  // ...
};

// Modul exportieren
module.exports = {
  module1,
  module2
}

Typ 2 (main.js):

// Modulfunktion importieren
const { module1, module2 } = require("./pfad/zum/modul");

Wie benutzt man den Modulimport?

const importModule = {
  ...development,
  // ...production,
  // ...module1,
  ...module2("param1", "param2"),
};

2voto

Module1.js:

var myFunctions = { 
    myfunc1:function(){
    },
    myfunc2:function(){
    },
    myfunc3:function(){
    },
}
module.exports=myFunctions;

main.js

var myModule = require('./module1');
myModule.myfunc1(); //calling myfunc1 from module
myModule.myfunc2(); //calling myfunc2 from module
myModule.myfunc3(); //calling myfunc3 from module

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X