초보자를 위한 Node.js 튜토리얼(1)
이번에는 Node.js 초보자 튜토리얼을 가져왔습니다. Node.js 사용 시 주의사항은 무엇인가요? 다음은 실제 사례입니다.
주요 스레드: Node.js란 무엇입니까?--> Node.js의 특징--> 핵심 모듈--> 모듈 --> 패키지--> 비차단, 단일 스레드, 이벤트 기반-->
노드란 무엇인가요? 먼저 Node.js라는 이름을 보면, 얼핏 보면 jQuery와 같은 라이브러리나 프레임워크인 줄 알겠지만, 실제로는 그렇지 않습니다. , 또는 Node.js는 브라우저가 아닌 환경에서 JavaScript를 실행할 수 있게 해주는 도구입니다. Node.js는 세계에서 가장 빠른 Chrome v8 엔진으로 알려진 것을 사용하며 Core JavaScript와 Node로 구성됩니다. 표준 라이브러리인 Core JavaScript는 실제로 ECMAScript를 참조합니다. 즉, 문서 개체 모델인 DOM과 브라우저 개체 모델을 제외하고 브라우저 측 js 스크립트에만 ECMAScript가 포함되어 있음을 의미합니다. 해당 노드에 호환성 문제가 있나요? Node에는 호환성 문제가 없습니다. 왜냐하면 우리는 클라이언트 브라우저의 js 스크립트를 배웠고 우리가 자주 이야기하는 js 호환성 문제는 실제로 DOM 및 BOM의 호환성 문제를 의미한다는 것을 이해해야 하기 때문입니다. Node 표준 라이브러리란 무엇입니까? , 이는 C 표준 라이브러리 또는 C++ 표준 확장 라이브러리와 유사합니다. Node.js의 특징은 비차단 비동기 이벤트 중심입니다. Node.js를 사용하면 JavaScript가 스크립팅 세계에 포함될 수 있습니다. 먼저 첫 번째 예제인 helloworld를 살펴보세요. 이 helloworld는 다른 언어보다 더 복잡해 보이죠? 하지만 이 6줄의 코드로 구현된 기능을 살펴보면 간단한 서버를 구현합니다. Node.js의 핵심 중 하나가 모듈이므로 가장 먼저 배워야 할 것은 모듈입니다. 모듈? 모듈은 실제로 js 파일입니다. 클라이언트 브라우저에서 CSS 파일을 포함하고 다른 CSS 파일을 도입하려면 @import 지시문을 사용할 수 있지만 js에서는 다른 CSS 파일 js를 도입하려는 경우 물론 이것이 달성될 수 없다는 의미는 아닙니다. createElement를 통해 스크립트 태그를 생성한 다음 이를 달성하기 위해 html에 Child를 추가할 수 있습니다. 예, 우리 노드는 이 문제를 해결했습니다. 우리 노드에서는 js 파일이 직접 모듈입니다. 두 개의 js 파일을 생성했는데 어떻게 다른 js 파일을 하나의 js 파일에 도입할 수 있습니까? require라는 함수를 통해 이를 도입할 수 있습니다. 각 모듈은 결국 일부 속성과 메서드를 노출하거나 노출된 속성과 메서드가 있는 모듈을 통해 이를 수행합니다. 하나는 핵심 모듈로, 공통 핵심 모듈로는 운영체제 관련 모듈인 os 모듈, 작업을 처리하고 파일화하는 파일 시스템 모듈인 fs 모듈이 있다. , 유틸리티 모듈 도구, 그리고 다른 하나는 로컬 모듈입니다. 모듈에 비해 더 큰 단위는 패키지입니다. 우리는 그것에 대해 생각할 수 있고, 모듈을 파일 중 하나로 생각할 수 있으며, 패키지를 폴더로 생각할 수 있습니다. 즉, 폴더를 사용하여 비슷한 기능을 가진 여러 파일을 모아서 패키징할 수 있다는 의미입니다. 패키지에 관해서는 우리가 직접 만든 패키지 외에도 더 중요한 것은 일부 타사 패키지입니다. npm.org 웹사이트에는 수십 개가 구현된 수많은 타사 패키지가 있습니다. 수천명이 사용하고 싶은데요, 구체적으로 어떻게 사용하나요?타사 패키지를 더 쉽게 사용할 수 있도록 Node에서는 npm이라는 패키지 관리 도구라는 도구를 개발했습니다. 이 도구를 사용하는 방법에는 두 가지가 있습니다. 하나는 전역 설치이고 다른 하나는 로컬 설치입니다. 예를 들어 Python 및 Ruby와 같이 전역으로 설치된 패키지는 일반적으로 명령줄 작업에 적합합니다. 우리 lessc, 또 다른 로컬 패키지는 일반적으로 우리가 현재 작업 중인 일부 프로젝트에서 사용됩니다. 물론 이러한 것만 있으면 Node.js에는 큰 기능이 없습니다. 왜냐하면 이러한 것들은 실제로 다른 언어에서 사용할 수 있기 때문입니다. Node.js의 가장 큰 특징은 실제로 비동기 비차단 및 이벤트 프로그래밍 모듈입니다. 이는 다른 언어와는 매우 다른 완전히 파괴적인 디자인이어야 합니다. 우리가 구현하는 것이 동기식 IO이고 쿼리하려는 것이 SQL 문이라고 가정하면 모두가 이 예제를 이해할 수 있기를 바랍니다. 모두 이 형식으로, 즉 먼저 db.query를 사용한 다음 SQL 쿼리는 데이터베이스가 결과를 반환하고 이를 res 변수에 저장하기를 차단하고 기다립니다. 그러나 다음은 Node를 작성하는 실제 방법입니다. 실제로 이 문은 SQL 쿼리를 생성하고 두 번째 매개변수에 함수를 넣는다는 것을 알 수 있습니다. 명령문이 실행되면 직접 실행되지 않습니다. res.auto, 내부 내용은 언제 실행됩니까? 내 데이터베이스가 메시지를 반환할 때까지 기다린 후 이벤트 루프를 통해 콜백 함수를 입력한 다음 쿼리 결과를 출력합니다. 이것이 비동기식 IO 모드이며, 그러면 무엇이 비동기식인지 설명하고 프로그램이 실행됩니다. IO 작업은 수십만 또는 수억 개의 명령 주기로 지속될 수 있는 오랜 시간이 걸릴 수 있지만 JavaScript 문을 실행하는 데는 수백 또는 수천 개의 명령 주기만 필요할 수 있습니다. 물론 최적화될 수도 있습니다. 어쩌면 수십 개가 필요할 수도 있으므로 IO가 발생한 후 시간 낭비입니다. 운영 체제와 CPU는 인터럽트를 통해 비동기 스케줄링 방법을 구현합니다. 즉, 프로세스가 IO 요청을 시작하면 운영 체제가 중단됩니다. 그런 다음 IO가 완료되면 운영 체제는 원래 프로세스를 재개하고 동시에 실행을 계속할 수 있습니다. 이 요청은 바로 지금입니다. 메소드는 동기식 IO 또는 차단 IO이지만 Node의 IO 모드에서는 비동기식 IO 또는 비차단 IO를 사용합니다. 이는 프로세스가 IO 요청을 시작한 후 즉시 반환하고 다른 작업을 계속 실행함을 의미합니다. 작업 지시를 수행하고 다른 수단을 사용하여 IO 작업이 완료되었음을 알리고 IO 작업이 완료된 후 논리 코드를 처리합니다. 그런 다음 비 차단 IO가 시작되면 프로세스가 차단 상태로 들어가지 않습니다. 다른 부분은 계속해서 이벤트를 실행하고 다른 이벤트를 처리하기 위해 이벤트 루프에 들어갑니다. 여기서는 이벤트 및 이벤트 루프의 개념을 언급합니다. 전체 프로그램은 이벤트 루프이고 이벤트 루프는 계속해서 이벤트 큐라는 것을 처리합니다. 즉, 처음에 이벤트가 있고 실행 프로세스 중에 IO 요청과 같은 일부 요청이 시작될 수 있습니다. IO 요청이 완료되면 이벤트 큐가 이벤트 큐에 추가됩니다. 처리하기 전에 프로세스가 이벤트 루프에 들어갈 때까지 기다립니다. 이는 이벤트 루프를 기반으로 하는 처리 모드입니다. 예를 들어, 마우스 클릭도 이벤트이고 이벤트에는 콜백 함수가 필요합니다. 그렇다면 Node는 왜 이 모호한 프로그래밍 모델을 사용하는 걸까요?사실 이것은 Node의 또 다른 매우 특별한 전략입니다. 단일 스레드 모드를 사용합니다. 먼저 차단 모드의 동시성 모델에 대해 이야기하겠습니다. 예를 들어 웹 서버를 개발하려면 동시성 요구 사항이 있어야 합니다. 동시에 여러 사용자의 액세스를 허용할 수 있습니다. 이는 한 사용자의 요청을 처리한 다음 두 번째 사용자의 요청을 처리한다는 의미는 아닙니다. 이 경우 사용자가 많아지면 처리 속도가 매우 느려집니다. 사용자가 매우 느리고 연결이 끊어지지 않으면 다른 사용자가 계속 기다리게 되며 이는 불합리합니다. 차단 모드에서 동시성을 달성하려면 다중 스레드를 사용해야 합니다. 즉, 개선하려는 경우 하나의 프로세스가 하나의 작업만 처리할 수 있습니다. CPU의 처리량, CPU 코어 수보다 훨씬 더 많은 스레드를 사용해야 합니다. 예를 들어, 우리 논리 중 하나는 일부를 계산해야 합니다. 먼저 파일 읽기, 파일 쓰기 또는 네트워크 요청 시작과 같은 IO 요청을 시작한 다음 두 번째 계산 부분을 입력하여 동시성을 달성하기 위해 멀티스레딩 모드를 사용할 수 있으며 실행은 하나일 수 있습니다. 예를 들어 단일 CPU가 있다고 가정하면 먼저 첫 번째 스레드가 계산을 위해 CPU를 점유한 다음 IO 요청 단계에 도달하여 차단됩니다. 이때 CPU 제어권이 이전됩니다. time 두 번째 스레드가 CPU를 점유한 다음 IO에 진입하고 다시 차단된 다음 CPU, 스레드 3, 스레드 4, 스레드 5 등의 제어를 해제하고 중간에 유휴 시간이 있을 수 있습니다. 그런 다음 스레드 1을 기다립니다. IO가 끝나고 CPU가 점유되지 않은 것을 발견하면 CPU를 사용하여 계산을 입력합니다. 예를 들어 계산 및 IO를 기반으로 한 동시 선점 모드는 비차단 모델에 따릅니다. , 해당 모델은 다음과 같습니다. 단일 스레드 계산 1은 비동기 IO 요청을 시작하고 다른 사용자가 시작한 계산 1일 수 있는 다른 계산 1을 직접 입력한 다음 두 번째 요청을 시작합니다. 그런 다음 5명의 사용자를 기다립니다. 초기화가 완료된 후 첫 번째 사용자의 계산이 종료되고, 이론상으로 우리의 이벤트 루프는 첫 번째 사용자가 시작한 IO 요청을 실행하는 단일 스레드입니다. 비차단 모드에서 프로세스의 CPU 사용률은 100%입니다. 이는 단일 스레드가 여러 스레드 없이 최대 처리량을 달성할 수 있는 경우입니다. 예를 들어 코어가 2개라면 2개의 스레드를 열게 됩니다. 그러면 블로킹에 비해 비블로킹의 장점은 무엇입니까? 멀티스레딩은 빠른 것처럼 보이지만 실제로는 그렇게 빠르지는 않습니다. 스위칭으로 인해 타임 슬라이스 분할이 매우 작습니다. 20ms마다 스테이션을 스위칭하는 것은 CPU 캐시 활용 측면에서 매우 비효율적이며 비차단 기능도 그리 크지 않습니다. 네, 쉽게 콜백이 발생합니다. 첫 번째 파일을 먼저 읽은 다음 두 번째 파일을 읽으세요. 여기서는 Node의 기본에 대해서만 소개했습니다. Node에 대해 오랫동안 이야기했는데 Node의 응용은 무엇일까요? 우선 Node에는 많은 타사 모듈이 있습니다. 예를 들어 웹 사이트를 만들려면 Express 프레임워크를 사용하고 Jade라는 템플릿 엔진을 사용하여 HTML을 생성할 수 있습니다. CSS를 생성하고 uglify가 있고, websocket을 사용하면 소켓.io가 있고, SQL 데이터베이스에는 ORM, oAuth, 데몬 프로세스, 명령줄 구문 분석, Node.js가 있지만 구문 분석이 있습니다. 실제로 파일 업로드, 구문 강조, 마크다운 구문 분석, 인코딩 변환 이미지 처리, 경량 스레드 및 코루틴, 커피 스크립트 및 브라우저 측의 일부 정적 분석을 처리할 수 있습니다. 오늘은 Node.js에 대한 소개입니다.
이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 도서:
Angularjs에서 $apply() 사용에 대한 자세한 설명
위 내용은 초보자를 위한 Node.js 튜토리얼(1)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Mistlock Kingdom은 플레이어가 Sons of Fire로 플레이하여 생존하고 탐험할 수 있는 오픈 월드 게임입니다. 이 게임은 액션 RPG 도전의 독특한 엔터테인먼트를 결합하여 플레이어에게 끝없는 놀라움과 즐거움을 선사합니다. 게임에서 플레이어는 자원, 환경, 무기 등을 탐색할 수 있습니다. 일부 초보 플레이어는 게임을 시작하는 방법에 대해 궁금해할 수 있습니다. 이 소개 및 공유에서는 관련 시작 가이드를 제공할 것입니다. 안개 자물쇠 왕국 초보자를 위한 팁: 독기가 덮힌 지역의 위험 수준은 다릅니다. 탐사 과정에서 지도의 새로운 지역이 점차 잠금 해제되고 독기가 덮힌 지역의 위치를 확인할 수 있습니다. 맵은 두 가지 색상으로 구분됩니다. 파란색 영역은 짧은 시간 동안 입장할 수 있으며, 캐릭터의 능력치에 따라 머무를 수 있는 시간도 달라집니다.

WebSocket 및 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 소개: 지속적인 기술 개발로 음성 인식 기술은 인공 지능 분야의 중요한 부분이 되었습니다. WebSocket과 JavaScript를 기반으로 한 온라인 음성 인식 시스템은 낮은 대기 시간, 실시간, 크로스 플랫폼이라는 특징을 갖고 있으며 널리 사용되는 솔루션이 되었습니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법을 소개합니다.

Anchor Arrival은 고화질 미소녀 2차원 테마를 갖춘 3D 턴제 카드 게임으로, 플레이어가 탐색하고 경험할 수 있는 풍부하고 흥미로운 캐릭터 조합을 제공합니다. 초보자도 궁금합니다.풀에서 추천하는 강력한 캐릭터는 무엇일까요? 앵커 포인트 강림은 초보자 풀의 강력한 캐릭터 추천을 살펴보겠습니다. 앨리스는 주로 단일 대상 천둥형 폭발 캐릭터입니다. 출력이 매우 폭발적이며 경험이 신규 사용자에게 매우 친숙하므로 선택하는 것이 좋습니다. 10골드 뽑기에는 "앨리스" + "영양" 조합을 선택하는 것이 좋습니다. 앨리스는 금파이어 속성을 출력하기에 가장 적합한 캐릭터이며, 초보자 카드 풀의 다른 두 캐릭터보다 조금도 강하지 않습니다. 앨리스는 스페셜을 통과할 수 있습니다

WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 소개: 인터넷의 대중화와 기술의 발전으로 점점 더 많은 레스토랑에서 온라인 주문 서비스를 제공하기 시작했습니다. 실시간 온라인 주문 시스템을 구현하기 위해 JavaScript 및 WebSocket 기술을 사용할 수 있습니다. WebSocket은 TCP 프로토콜을 기반으로 하는 전이중 통신 프로토콜로 클라이언트와 서버 간의 실시간 양방향 통신을 실현할 수 있습니다. 실시간 온라인 주문 시스템에서는 사용자가 요리를 선택하고 주문을 하면

PyCharm 초보자를 위한 필수 기술: 일괄 들여쓰기 사용을 마스터하려면 특정 코드 예제가 필요합니다. 개요: PyCharm은 개발자가 효율성을 향상하는 데 도움이 되는 많은 실용적인 도구와 기능을 제공하는 강력한 Python 통합 개발 환경(IDE)입니다. 일상적인 코딩 과정에서 우리는 코드 형식을 깔끔하고 아름답게 유지하기 위해 코드를 들여쓰기해야 하는 경우가 많습니다. PyCharm에서 제공하는 일괄 들여쓰기 기능을 사용하면 코드를 빠르게 일괄 들여쓰기하고 코딩 효율성을 높일 수 있습니다. 이 기사에서는 Py를 살펴보겠습니다.

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 오늘날의 디지털 시대에는 점점 더 많은 기업과 서비스에서 온라인 예약 기능을 제공해야 합니다. 효율적인 실시간 온라인 예약 시스템을 구현하는 것이 중요합니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. WebSocket이란 무엇입니까? WebSocket은 단일 TCP 연결의 전이중 방식입니다.

Crown of the Ancients는 서양의 마법 모험을 기반으로 한 고품질 전략 카드 모바일 게임입니다. 게임 내 비밀 탐험, 폐허 모험, 전국 챔피언십 및 기타 특별한 게임 플레이가 여러분의 경험을 기다리고 있습니다. 따라서 초보 플레이어가 이 게임을 빨리 시작하고 싶다면 초보 가이드가 필수입니다. 오늘 편집자가 관련 가이드를 가져올 것이므로 살펴보겠습니다. 고대 왕관 초보자 가이드, 게임 플레이 및 지역 개방 스타일 개요: 1. 다이아몬드 축적 흐름: 모든 것이 다이아몬드 축적에 중점을 두고 있으며, 마을을 떠난 후 열심히 일하기 시작합니다. 다이아몬드가 필요한 주요 마법 무기, 세 가지 플라이휠 활동 등을 제외하고 나머지는 무시됩니다. 주요 초점은 그 중 하나에 집중하지 말고 최대한 많이 싸울 수 있습니다. , 그리고 강요하지 마세요. 장점: 다이아몬드를 모으기 위해 장난만 치면 됩니다. 마을을 떠난 후에는 다이아몬드로 최신 활동에 빠르게 액세스하고, 새로운 하드웨어 영웅 시리즈를 얻을 수 있으며, 다이아몬드가 깨질 수 있습니다.
