>웹 프론트엔드 >JS 튜토리얼 >간단한 코드 예제로 Node.js의 이벤트 이해하기 - Node.js 튜토리얼 - 6부

간단한 코드 예제로 Node.js의 이벤트 이해하기 - Node.js 튜토리얼 - 6부

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-09-20 18:45:02943검색

Understanding Events in Node.js with Simple Code Examples - Node.js Tutorial - Part 6

이벤트란 무엇입니까?

Node.js에서 이벤트는 듣고 실행할 수 있는 작업입니다. 이벤트를 알림 시스템으로 상상해 보세요. 파일 읽기 완료 또는 요청 수신과 같은 문제가 발생할 때마다 Node.js는 사용자가 응답할 수 있는 이벤트를 트리거합니다.

이벤트 이미터

Node.js에는 이벤트라는 모듈이 내장되어 있으며 이 모듈에서 가장 중요한 클래스는 EventEmitter입니다. 이벤트를 정의하고 처리할 수 있습니다.

예제 1: 기본 이벤트 이미터

이벤트 이미터를 생성하는 방법을 살펴보겠습니다.

const EventEmitter = require('events');
const myEmitter = new EventEmitter();

// Register an event listener
myEmitter.on('greet', () => {
  console.log('Hello there!');
});

// Emit the event
myEmitter.emit('greet');

이 예에서는 Greeting 이벤트에 대한 리스너를 등록한 다음 이벤트를 내보냈습니다. 결과는 간단한 "안녕하세요!"입니다. 콘솔에 인쇄됩니다.

예 2: 이벤트로 인수 전달

이벤트를 내보낼 때 인수를 전달할 수도 있습니다. 이는 데이터를 전달해야 할 때 유용합니다.

myEmitter.on('sayHello', (name) => {
  console.log(`Hello, ${name}!`);
});

myEmitter.emit('sayHello', 'Alice');

이제 sayHello 이벤트를 내보내면 Alice에게 인사합니다.

예제 3: 단순 HTTP 서버에서 이벤트 사용

기본 HTTP 서버를 만들고 이벤트가 어떻게 작동하는지 살펴보겠습니다. Node.js에서 http 모듈은 이벤트를 광범위하게 사용합니다. 요청이 서버에 도달할 때마다 이벤트가 트리거됩니다.

const http = require('http');

// Create a server
const server = http.createServer((req, res) => {
  if (req.url === '/') {
    res.write('Hello World');
    res.end();
  }
});

// Register an event listener for 'request'
server.on('request', (req, res) => {
  console.log(`Received request for ${req.url}`);
});

// Start the server
server.listen(3000, () => {
  console.log('Server is running on port 3000');
});

이 예에서는:

  • 기본 HTTP 서버가 생성됩니다.
  • '요청' 이벤트에 대해 이벤트 리스너가 추가되어 각 요청 URL을 기록합니다.
  • 서버가 요청을 받을 때마다 요청 이벤트가 발생하며, 이 이벤트는 리스너가 선택하여 요청된 URL을 기록합니다.

예제 4: 서버의 사용자 정의 이벤트

특정 작업을 처리하기 위해 서버 코드 내에서 사용자 정의 이벤트를 생성할 수 있습니다. 클라이언트가 연결될 때 맞춤 이벤트를 내보내는 예는 다음과 같습니다.

const EventEmitter = require('events');
const http = require('http');

// Create an event emitter instance
const myEmitter = new EventEmitter();

// Create a server
const server = http.createServer((req, res) => {
  res.write('Hello Client');
  res.end();

  // Emit a custom event on each request
  myEmitter.emit('clientConnected', req.url);
});

// Listen for the custom 'clientConnected' event
myEmitter.on('clientConnected', (url) => {
  console.log(`A client connected to ${url}`);
});

// Start the server
server.listen(3000, () => {
  console.log('Server is running on port 3000');
});

이 예에서는:

  • 클라이언트가 서버에 요청할 때마다 실행되는 맞춤 이벤트인 clientConnected를 만듭니다.
  • 이 이벤트의 리스너는 이벤트가 발생하면 요청의 URL을 기록합니다.

이벤트를 사용하는 이유는 무엇입니까?

  • 비차단 I/O: Node.js는 비동기 작업을 효율적으로 처리하는 데 중점을 둡니다. 이벤트를 사용하면 실행을 차단하지 않고 작업이 완료될 때 응답할 수 있습니다.
  • 모듈형 코드: 이벤트는 코드를 분리하여 코드를 더욱 모듈화하고 관리하기 쉽게 만드는 데 도움이 됩니다.

최종 생각

이벤트는 Node.js의 핵심이며, 특히 서버 컨텍스트에서 비동기 작업을 처리하는 데 강력합니다. 이벤트를 마스터하면 확장 가능하고 효율적인 애플리케이션을 구축하기 위한 강력한 기반을 갖게 됩니다.

읽어주셔서 감사합니다. 즐거운 코딩 되세요! ?

위 내용은 간단한 코드 예제로 Node.js의 이벤트 이해하기 - Node.js 튜토리얼 - 6부의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.