목차
- exports로 모듈화 하기
- module.exports로 모듈화 하기
exports로 모듈화 하기 (추천하지 않는 방법)
exports 객체 속성으로 함수 또는 객체를 추가할 수 있습니다.
// exports 객체 속성으로 함수 추가
exports.getUser = function(){
return {id : 'test01', name : '짱구'};
};
// exports 객체 속성으로 객체 추가
exports.group = {id : 'group01', name : '친구'};
user1.js
추가한 모듈을 require로 불러와 사용할 수 있습니다.
// require() 메소드는 exports 객체를 반환함
var user1 = require('./user1'));
console.log(user1.getUser().name + '는 ' + user1.group.name);
// 짱구는 친구
이렇게 exports는 속성으로 함수나 객체를 추가할 수 있습니다. 하지만 exports 자체에 함수나 객체를 할당하면 모듈로 사용할 수 없습니다. 그렇게 할 경우 exports는 해당 파일에서만 사용 가능한 변수로 바뀝니다.
함수나 객체를 직접 할당하기 위해선 module.exports를 사용해야합니다.
또한 exports와 module.exports를 함께 사용하면 exports는 무시되기 때문에 exports를 사용하는건 추천되지 않습니다.
module.exports로 모듈화 하기
var user = {
getUser : function(){
return {id : 'test01', name : '짱구'};
},
group : {id : 'group01', name : '친구'};
}
// user 객체를 그대로 할당함
module.exports = user;
user2.js
// require() 메소드는 user 객체를 반환함
var user2 = require('./user2'));
console.log(user2.getUser().name + '는 ' + user1.group.name);
// 짱구는 친구
위의 코드는 exports로 모듈화 하기에서 본 코드와 결과가 똑같이 나옵니다.
module.expots에 프로토타입 객체를 할당할 수도 있습니다.
// User 생성자
function User(id, name){
this.id = id;
this.name = name;
}
User.prototype.printUser = function(){
console.log(this.id + '은 ' + this.name);
}
// 프로토타입 객체 할당
module.exports = User
var user = require('/user3');
var user = new User('jjang01', '짱구');
user.printUser();
// jjang01은 짱구
Reference
- Do it! Node.js 프로그래밍
'개발 > Node.js' 카테고리의 다른 글
[Node.js] socket.io로 채팅 서버 만들기 1 - 웹 소켓 연결 (0) | 2021.01.25 |
---|---|
[Node.js] socket.io require 에러 해결법 (0) | 2021.01.22 |
[Node.js] 패스포트 (passport) 사용법 - 로컬 인증 방식 (0) | 2021.01.21 |
[Node.js] 익스프레스로 웹 서버 만들기 2 - 자주 쓰이는 미들웨어 (0) | 2021.01.15 |
[Node.js] 익스프레스로 웹 서버 만들기 1 - 익스프레스 서버와 미들웨어 (0) | 2021.01.14 |
댓글