[node.js] Node.js에서 여러 module.exports 선언
내가 달성하려는 것은 여러 기능을 포함하는 하나의 모듈을 만드는 것입니다.
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);
내가 가진 문제 firstParam
는 객체 유형이고 secondParam
URL 문자열이라는 것입니다.하지만 가지고있을 때 항상 유형이 잘못되었다고 불평합니다.
이 경우 여러 module.exports를 어떻게 선언 할 수 있습니까?
답변
당신은 다음과 같은 것을 할 수 있습니다 :
module.exports = {
method: function() {},
otherMethod: function() {},
};
아니면 그냥 :
exports.method = function() {};
exports.otherMethod = function() {};
그런 다음 호출 스크립트에서 :
const myModule = require('./myModule.js');
const method = myModule.method;
const otherMethod = myModule.otherMethod;
// OR:
const {method, otherMethod} = require('./myModule.js');
답변
여러 함수를 내보내려면 다음과 같이 나열하면됩니다.
module.exports = {
function1,
function2,
function3
}
그런 다음 다른 파일로 액세스하십시오.
var myFunctions = require("./lib/file.js")
그리고 다음을 호출하여 각 함수를 호출 할 수 있습니다.
myFunctions.function1
myFunctions.function2
myFunctions.function3
답변
@mash 답변 외에도 항상 다음을 수행하는 것이 좋습니다.
const method = () => {
// your method logic
}
const otherMethod = () => {
// your method logic
}
module.exports = {
method,
otherMethod,
// anotherMethod
};
여기에 참고하십시오 :
- 당신은 전화
method
를 할 수otherMethod
있고 당신은 이것을 많이 필요로 할 것입니다 - 필요할 때 메소드를 비공개로 빠르게 숨길 수 있습니다
- 이것은 대부분의 IDE가 코드를 이해하고 자동 완성하는 것이 더 쉽습니다.)
-
가져 오기에 동일한 기술을 사용할 수도 있습니다.
const {otherMethod} = require('./myModule.js');
답변
이것은 내가 달성하려고했던 것이 이것에 의해 달성 될 수 있기 때문에 단지 참조 용입니다.
에서 module.js
우리는 이런 식으로 할 수 있습니다
module.exports = function ( firstArg, secondArg ) {
function firstFunction ( ) { ... }
function secondFunction ( ) { ... }
function thirdFunction ( ) { ... }
return { firstFunction: firstFunction, secondFunction: secondFunction,
thirdFunction: thirdFunction };
}
에서 main.js
var name = require('module')(firstArg, secondArg);
답변
module.js :
const foo = function(<params>) { ... }
const bar = function(<params>) { ... }
//export modules
module.exports = {
foo,
bar
}
main.js :
// import modules
var { foo, bar } = require('module');
// pass your parameters
var f1 = foo(<params>);
var f2 = bar(<params>);
답변
파일이 ES6 내보내기를 사용하여 작성된 경우 다음을 작성할 수 있습니다.
module.exports = {
...require('./foo'),
...require('./bar'),
};
답변
이를 수행 할 수있는 한 가지 방법은 모듈을 교체하는 대신 새 객체를 작성하는 것입니다.
예를 들면 다음과 같습니다.
var testone = function () {
console.log('test one');
};
var testTwo = function () {
console.log('test two');
};
module.exports.testOne = testOne;
module.exports.testTwo = testTwo;
그리고 전화
var test = require('path_to_file').testOne:
testOne();