노드 내장 객체 : global [ node.js 교과서 ]

2023. 4. 10. 16:00node.js

본 게시글은 node.js 교과서 강의를 듣고 정리한 글입니다.

 

노드의 전역 객체

- 브라우저의 window 같은 역할

- 모든 파일에서 접근 가능

- window 처럼 생략도 가능 (console, require 도 global 속성)

 

터미널에 node 실행 후 명령줄에 global 을 하면 볼 수 있다.

node

Welcome to Node.js v19.6.1.
Type ".help" for more information.
> global
<ref *1> Object [global] {
  global: [Circular *1],
  queueMicrotask: [Function: queueMicrotask],
  clearImmediate: [Function: clearImmediate],
  setImmediate: [Function: setImmediate] {
    [Symbol(nodejs.util.promisify.custom)]: [Getter]
  },
  structuredClone: [Getter/Setter],
  clearInterval: [Function: clearInterval],
  clearTimeout: [Function: clearTimeout],
  setInterval: [Function: setInterval],
  setTimeout: [Function: setTimeout] {
    [Symbol(nodejs.util.promisify.custom)]: [Getter]
  },
  atob: [Getter/Setter],
  btoa: [Getter/Setter],
  performance: [Getter/Setter],
  fetch: [AsyncFunction: fetch],
  crypto: [Getter]
}

global.console 로 콘솔에 대한 것들을 볼 수 있다.

node

Welcome to Node.js v19.6.1.
Type ".help" for more information.
> global.console
Object [console] {
  log: [Function: log],
  warn: [Function: warn],
  dir: [Function: dir],
  time: [Function: time],
  timeEnd: [Function: timeEnd],
  timeLog: [Function: timeLog],
  trace: [Function: trace],
  assert: [Function: assert],
  clear: [Function: clear],
  count: [Function: count],
  countReset: [Function: countReset],
  group: [Function: group],
  groupEnd: [Function: groupEnd],
  table: [Function: table],
  debug: [Function: debug],
  info: [Function: info],
  dirxml: [Function: dirxml],
  error: [Function: error],
  groupCollapsed: [Function: groupCollapsed],
  Console: [Function: Console],
  profile: [Function: profile],
  profileEnd: [Function: profileEnd],
  timeStamp: [Function: timeStamp],
  context: [Function: context],
  createTask: [Function: createTask]
}

global 속성에 값을 대입하면 다른 파일에서도 사용 가능하다.

// globalA.js

module.exports = () => global.message;
// globalB.js

const A = require("./globalA");

global.message = "안녕하세욤";
console.log(A());

실행 결과

node globalB

안녕하세욤

- 하지만 이는 좋지 않은 방법으로 관리가 힘들다.

'node.js' 카테고리의 다른 글

bcrypt 사용방법 [ Javascript ] [ node.js ]  (0) 2023.07.07
PM2 사용  (0) 2023.06.24
__filename, __dirname [ node.js 교과서 ]  (0) 2023.04.10
다이나믹임포트 [ node.js 교과서 ]  (0) 2023.04.10
ECMAScript 모듈 [ node.js 교과서 ]  (0) 2023.04.10