차이점: 1. nodejs는 JS 실행 환경인 반면 WebSocket은 통신 프로토콜입니다. 2. nodejs는 빠른 응답과 쉬운 확장으로 네트워크 애플리케이션을 쉽게 구축하는 데 사용되는 반면 WebSocket은 클라이언트와 서버 데이터를 연결할 수 있습니다. 교환이 더 간단해져서 서버가 적극적으로 데이터를 클라이언트에 푸시할 수 있습니다.
이 튜토리얼의 운영 환경: windows7 시스템, nodejs 버전 12.19.0, DELL G3 컴퓨터.
nodejs란 무엇입니까
Node는 서버에서 자바스크립트를 실행할 수 있게 해주는 개발 플랫폼인 Chrome V8 엔진 기반의 자바스크립트 실행 환경으로, 빠른 응답 속도와 손쉬운 네트워크 애플리케이션을 쉽게 구축하는데 사용됩니다. 확장. Node는 이벤트 중심의 비차단 I/O 모델을 사용하여 가볍고 효율적이므로 분산 장치에서 데이터 집약적인 실시간 애플리케이션을 실행하는 데 이상적입니다.
Node는 "이벤트 루프"라는 아키텍처를 채택하여 확장성이 뛰어난 서버를 쉽고 안전하게 작성할 수 있습니다. 서버 성능을 향상시키기 위한 다양한 기술이 있습니다. Node는 성능을 향상시키고 개발 복잡성을 줄일 수 있는 아키텍처를 선택했습니다. 이것은 매우 중요한 기능입니다. 동시 프로그래밍은 종종 복잡하고 지뢰로 가득 차 있습니다. 노드는 이를 우회하지만 여전히 뛰어난 성능을 제공합니다.
Node는 일련의 "비차단" 라이브러리를 사용하여 이벤트 루프를 지원합니다. 기본적으로 파일 시스템 및 데이터베이스와 같은 리소스에 대한 인터페이스를 제공합니다. 파일 시스템에 요청을 보낼 때 (파일 주소를 지정하고 검색하기 위해) 하드 디스크를 기다릴 필요가 없습니다. 비차단 인터페이스는 하드 디스크가 준비되면 노드에 알립니다. 이 모델은 직관적이고 이해하기 쉬운 확장 가능한 방식으로 느린 리소스에 대한 액세스를 단순화합니다. 특히 onmouseover, onclick 등 DOM 이벤트에 익숙한 사용자에게는 익숙하게 느껴질 것입니다.
서버 측에서 Javascript를 실행하는 것은 Node의 고유한 기능은 아니지만 Node의 강력한 기능 중 하나입니다. 우리는 브라우저 환경이 프로그래밍 언어 선택의 자유를 제한한다는 점을 인정해야 합니다. 서버와 점점 더 복잡해지는 브라우저 클라이언트 애플리케이션 간에 코드를 공유하려는 욕구는 Javascript를 통해서만 달성될 수 있습니다. 서버 측에서 실행되는 Javascript를 지원하는 다른 플랫폼도 있지만, Node는 위와 같은 특성으로 인해 빠르게 발전하여 사실상의 플랫폼이 되었습니다.
15 Nodejs 애플리케이션 시나리오
우리는 Nodejs에 대한 사전 이해를 마쳤으니, Nodejs의 애플리케이션 시나리오를 살펴보겠습니다.
1 웹 개발: Express + EJS + Mongoose/MySQL
express는 웹 사이트를 빠르게 구축할 수 있는 가볍고 유연한 Nodejs 웹 애플리케이션 프레임워크입니다. Express 프레임워크는 Nodejs에 내장된 Http 모듈을 기반으로 구축되었으며 Http 모듈을 다시 패키징하여 웹 요청 처리 기능을 구현합니다.
ejs는 컴파일을 통해 HTML 코드를 생성하는 내장형 Javascript 템플릿 엔진입니다.
mongoose는 MongoDB의 객체 모델 도구입니다. Mongoose 프레임워크를 통해 MongoDB에 액세스할 수 있습니다.
mysql은 MySQL 데이터베이스에 연결하고 MySQL에 액세스하기 위한 작업을 수행할 수 있는 통신 API입니다.
일반적으로 웹 개발에 Nodejs를 사용하려면 Java의 SSH와 마찬가지로 세 가지 프레임워크를 사용해야 합니다.
2 REST 개발: Restify
restify는 Nodejs 기반의 REST 애플리케이션 프레임워크로, 서버와 클라이언트를 지원합니다. Restify는 Express보다 REST 서비스에 더 중점을 두고 Express에서 템플릿, 렌더링 및 기타 기능을 제거하는 동시에 REST 프로토콜 사용, 버전 관리 지원 및 HTTP 예외 처리를 강화합니다.
3 웹 채팅방(IM): Express + http://Socket.io
socket.io는 Nodejs 아키텍처 기반 소프트웨어 패키지이며 실시간 통신을 위해 웹소켓 프로토콜을 지원합니다. Socket.io는 브라우저 전반에 걸쳐 실시간 애플리케이션을 구축하기 위한 완전한 패키지를 제공합니다. Socket.io는 JavaScript로 완벽하게 구현됩니다.
4 웹 크롤러: Cheerio/Request
cheerio는 빠르고 유연하며 jQuery의 핵심 기능을 캡슐화한 서버용으로 특별히 맞춤화된 툴킷입니다. Cheerio에는 핵심 jQuery의 하위 집합이 포함되어 있어 jQuery 라이브러리에서 모든 DOM 불일치와 브라우저 비호환성을 제거하여 정말 우아한 API를 드러냅니다. Cheerio는 매우 간단하고 일관된 DOM 모델에서 작동하여 구문 분석, 작업 및 렌더링을 매우 효율적으로 만듭니다. 기본 엔드투엔드 벤치마크에서는 Cheerio가 JSDOM보다 약 8배(8배) 빠른 것으로 나타났습니다. Cheerio는 @FB55 호환 htmlparser를 캡슐화하고 거의 모든 HTML 및 XML 문서를 구문 분석할 수 있습니다.
5 웹 블로그: Hexo
Hexo는 Node.js를 기반으로 하는 간단하고 가벼운 정적 블로그 프레임워크입니다. Hexo를 사용하면 몇 가지 명령만 있으면 블로그를 빠르게 만들 수 있습니다.
Hexo가 출시되면 자체 노드 서버나 github에 배포할 수 있습니다. 개인 사용자의 경우 GitHub에 배포하면 서버 비용을 절약할 수 있을 뿐만 아니라 다양한 시스템 운영 및 유지 관리(시스템 관리, 백업, 네트워크)의 문제를 줄일 수 있습니다. 그래서 github 기반의 개인 사이트가 인기를 끌기 시작했습니다...
6 웹 포럼: nodeclub
Node Club은 Node.js와 MongoDB로 개발된 새로운 커뮤니티 소프트웨어로, 우아한 인터페이스와 풍부한 기능, 작은 크기를 갖추고 있습니다. 이미 Node.js에 있습니다. 중국 기술 커뮤니티 CNode가 사용되지만 이를 사용하여 자신만의 커뮤니티를 구축할 수 있습니다.
7 웹 슬라이드쇼: Cleaver
Cleaver는 마크다운 기반 프레젠테이션을 생성할 수 있습니다. 이미 마크다운 문서가 있다면 30초 안에 슬라이드쇼를 만들 수 있습니다. Cleaver는 해커를 위한 도구입니다.
8 프론트엔드 패키지 관리 플랫폼: bower.js
Bower는 트위터에서 출시한 패키지 관리 도구로, nodejs의 모듈식 아이디어를 기반으로 모듈 간 연결이 가능하도록 기능을 다양한 모듈로 분산시킵니다. Bower를 통해 모듈 간의 연결을 관리합니다.
9 OAuth 인증: Passport
Passport 프로젝트는 Nodejs 기반의 인증 미들웨어입니다. Passport의 목적은 단지 "로그인 인증"이기 때문에 코드가 깔끔하고 유지 관리가 쉬우며 다른 애플리케이션에 쉽게 통합될 수 있습니다. 웹 애플리케이션에는 일반적으로 사용자 이름 및 비밀번호 인증 로그인과 OAuth 인증 로그인이라는 두 가지 형태의 로그인 인증이 있습니다. Passport는 애플리케이션의 특성에 따라 다양한 인증 메커니즘을 구성할 수 있습니다. 이번 글에서는 사용자 이름과 비밀번호의 인증 로그인에 대해 소개하겠습니다.
10 예약된 작업 도구: later
Later는 가장 간단한 방법으로 예약된 작업을 수행하는 Nodejs 기반 도구 라이브러리입니다. 나중에 Node와 브라우저에서 실행할 수 있습니다.
11 브라우저 환경 도구: browserify
Browserify의 출현으로 Nodejs 모듈이 브라우저에서 실행되고 require() 구문 형식을 사용하여 프런트 엔드 코드를 구성하고 npm 모듈을 로드할 수 있습니다. 브라우저에서는 browserify를 호출하여 컴파일된 코드가