Node.js는 Chrome JavaScript 런타임을 기반으로 구축된 플랫폼입니다.
Node.js는 Google의 V8 엔진을 기반으로 하는 이벤트 중심 I/O 서버 측 JavaScript 환경입니다. V8 엔진은 Javascript를 매우 빠르게 실행하고 성능이 매우 좋습니다.
Node.js 이벤트 루프 통사론
Node.js는 단일 프로세스, 단일 스레드 애플리케이션이지만 V8 엔진에서 제공하는 비동기 실행 콜백 인터페이스 덕분에 이러한 인터페이스를 통해 많은 양의 동시성을 처리할 수 있으므로 성능이 매우 높습니다.
Node.js의 거의 모든 API는 콜백 기능을 지원합니다.
Node.js 기본적으로 모든 이벤트 메커니즘은 디자인 패턴에서 관찰자 패턴을 사용하여 구현됩니다.
Node.js 단일 스레드는 이벤트 관찰자가 종료되지 않을 때까지 while(true) 이벤트 루프를 입력하는 것과 유사합니다. 각 비동기 이벤트는 이벤트가 발생하면 콜백 함수가 호출됩니다.
Node.js 이벤트 루프 예
main.js 파일을 생성합니다. 코드는 다음과 같습니다:
// 引入 events 模块 var events = require('events'); // 创建 eventEmitter 对象 var eventEmitter = new events.EventEmitter(); // 创建事件处理程序 var connectHandler = function connected() { console.log('连接成功。'); // 触发 data_received 事件 eventEmitter.emit('data_received');} // 绑定 connection 事件处理程序 eventEmitter.on('connection', connectHandler); // 使用匿名函数绑定 data_received 事件 eventEmitter.on('data_received', function(){ console.log('数据接收成功。');}); // 触发 connection 事件 eventEmitter.emit('connection'); console.log("程序执行完毕。");