Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- dfs
- AWS
- MySQL
- nodejs
- 자료구조
- Python
- Sequelize
- Dinosaur
- react
- Bull
- JavaScript
- class
- 정렬
- 공룡게임
- game
- 게임
- TypeScript
- Queue
- OCR
- Express
- typeORM
- MongoDB
- nestjs
- jest
- cookie
- flask
- Nest.js
- mongoose
- GIT
Archives
- Today
- Total
포시코딩
외부에서 class로의 접근 본문
728x90
UserStorage.js
'use strict';
class UserStorage {
users = {
id: ['test', 'test2', 'test3'],
psword: ['1234', '1234', '1234'],
};
}
module.exports = UserStorage;
UserStorage 라는 class가 있을 때
외부에서 users 라는 field 에 접근하기 위해 다음과 같이 사용할 수 있다.
1. 인스턴스 사용
const UserStorage = require('경로');
const userStorage = new UserStorage();
console.log(userStorage.users);
2. class 자체에서 접근하기
const UserStorage = require('경로');
console.log(UserStorage.users);
대신 2번처럼 class 자체에서 users field에 접근하려면
users에 static을 붙여줘야 한다.
'use strict';
class UserStorage {
static users = {
id: ['test', 'test2', 'test3'],
psword: ['1234', '1234', '1234'],
};
}
module.exports = UserStorage;
하지만 다른 외부 파일에서 내부 데이터에 접근할 수 없어야 하는게 정상이다.
때문에 우리는 아래와 같이 users를 은닉화(private) 해줘야 한다.
'use strict';
class UserStorage {
static #users = {
id: ['test', 'test2', 'test3'],
psword: ['1234', '1234', '1234'],
};
}
module.exports = UserStorage;
이럴경우 어떻게 users 변수를 가져올 수 있을까?
UserStorage 내부에 users를 리턴하는 메서드를 만들어 사용하면 된다.
'use strict';
class UserStorage {
static #users = {
id: ['test', 'test2', 'test3'],
psword: ['1234', '1234', '1234'],
};
static getUsers() {
return this.#users;
};
}
module.exports = UserStorage;
getUsers() 도 마찬가지로 클래스 외부에서 접근하므로 static을 붙여줘야한다.
728x90
'Node.js' 카테고리의 다른 글
Express + mongoose(몽구스) 연결하기 (0) | 2022.11.14 |
---|---|
axios GET 요청 request 데이터 받기 (0) | 2022.11.08 |
Express default setting list (0) | 2022.10.20 |
Node+Express 서버와 local MongoDB 연동하기 (0) | 2022.10.06 |
Node+Express 서버와 Vue 연동하기 (0) | 2022.10.06 |