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?

1voto

Sorter Punkte 8826

Verwenden Sie das export Schlüsselwort

module.js

export {method1, method2}

Und importieren sie in main.js

import {method1, method2) from "./module"

0voto

Bogdan Surai Punkte 1017

Sie können auch diesen Ansatz verwenden

module.exports.func1 = ...
module.exports.func2 = ...

oder

exports.func1 = ...
exports.func2 = ...

0voto

testtek Punkte 1

Hier hinzufügen, damit jemand helfen kann:

dieser Code-Block hilft dabei, mehrere Plugins in die Datei cypress index.js einzufügen Plugins -> cypress-ntlm-auth und Zynbresse-Umgebungsauswahldatei

const ntlmAuth = require('cypress-ntlm-auth/dist/plugin');
const fs = require('fs-extra');
const path = require('path');

const getConfigurationByFile = async (config) => {
  const file = config.env.configFile || 'dev';
  const pathToConfigFile = path.resolve(
    '../Cypress/cypress/',
    'config',
    `${file}.json`
  );
  console.log('pathToConfigFile' + pathToConfigFile);
  return fs.readJson(pathToConfigFile);
};

module.exports = async (on, config) => {
  config = await getConfigurationByFile(config);
  await ntlmAuth.initNtlmAuth(config);
  return config;
};

0voto

Manish Punkte 474

Wenn Sie eine Klasse in der Moduldatei deklarieren anstatt des einfachen Objekts

Datei: UserModule.js

//Benutzermodul    
class User {
  constructor(){
    //Code hier eingeben
  }
  create(params){
    //Code hier eingeben
  }
}
class UserInfo {
  constructor(){
    //Code hier eingeben
  }
  getUser(userId){
    //Code hier eingeben
    return user;
  }
}

// exportieren mehrere
module.exports = [User, UserInfo];

Hauptdatei: index.js

// Modul importieren wie
const { User, UserInfo } = require("./Pfad/zum/UserModule");
User.create(params);
UserInfo.getUser(userId);

0voto

Bud Linville Punkte 193

Wie andere bereits gesagt haben, wäre dies der bevorzugte Weg des Exports:

// In foo/bar.js
module.exports = {
    method1: () => {},
    method2: () => {},
};

Der bevorzugte es6-Weg des Imports im Aufrufskript würde jedoch so aussehen:

const { method1, method2 } = require('./foo/bar');

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