Ce que j’essaie de faire, c’est créer un module contenant plusieurs fonctions.
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);
Le problème que j’ai est que le firstParam
est un type d’object et le secondParam
est une chaîne d’URL, mais quand je l’ai, il se plaint toujours que le type est incorrect.
Comment puis-je déclarer plusieurs module.exports dans ce cas?
Vous pouvez faire quelque chose comme:
module.exports = { method: function() {}, otherMethod: function() {} }
Ou même simplement:
exports.method = function() {}; exports.otherMethod = function() {};
Puis dans le programme d’appel:
var MyMethods = require('./myModule.js'); var method = MyMethods.method; var otherMethod = MyMethods.otherMethod;
Pour exporter plusieurs fonctions, vous pouvez simplement les lister comme ceci:
module.exports = { function1, function2, function3 }
Et puis pour y accéder dans un autre fichier:
var myFunctions = require("./lib/file.js")
Et puis vous pouvez appeler chaque fonction en appelant:
myFunctions.function1 myFunctions.function2 myFunctions.function3
En plus de @mash answer, je vous recommande de toujours faire ce qui suit:
const method = () => { // your method logic } const otherMethod = () => { // your method logic } module.exports = { method, otherMethod, // anotherMethod };
Notez ici:
method
de otherMethod
et vous en aurez beaucoup besoin Vous pouvez également utiliser la même technique pour l’importation:
const {otherMethod} = require('./myModule.js');
Ceci est juste pour ma référence car ce que j’essayais de réaliser peut être accompli par ceci.
Dans le module.js
Nous pouvons faire quelque chose comme ça
module.exports = function ( firstArg, secondArg ) { function firstFunction ( ) { ... } function secondFunction ( ) { ... } function thirdFunction ( ) { ... } return { firstFunction: firstFunction, secondFunction: secondFunction, thirdFunction: thirdFunction }; }
Dans le main.js
var name = require('module')(firstArg, secondArg);
Vous pouvez écrire une fonction qui délègue manuellement entre les autres fonctions:
module.exports = function(arg) { if(arg instanceof Ssortingng) { return doSsortingngThing.apply(this, arguments); }else{ return doObjectThing.apply(this, arguments); } };
utilisez ceci
(function() { var exports = module.exports = {}; exports.yourMethod = function (success) { } exports.yourMethod2 = function (success) { } })();
Vous pouvez notamment créer un nouvel object dans le module au lieu de le remplacer.
par exemple:
var testone = function() { console.log('teste one'); }; var testTwo = function() { console.log('teste Two'); }; module.exports.testOne = testOne; module.exports.testTwo = testTwo;
et d’appeler
var test = require('path_to_file').testOne: testOne();
Si les fichiers sont écrits à l’aide de l’exportation ES6, vous pouvez écrire:
module.exports = { ...require('./foo'), ...require('./bar'), };
module.exports = (function () { 'use ssortingct'; var foo = function () { return { public_method: function () {} }; }; var bar = function () { return { public_method: function () {} }; }; return { module_a: foo, module_b: bar }; }());