nodejs에는 세 가지 특성이 있습니다. 1. 서버 측 Nodejs는 서버 측에서 실행되며 Javascript 실행 환경에 대한 환경 서비스를 제공합니다. 2. 비차단 비동기식; Nodejs는 I/O 작업을 수행할 때 어떠한 차단도 발생시키지 않는 비차단 I/O 메커니즘을 채택합니다. 3. 이벤트 중심; 새 요청이 들어오면 요청이 이벤트 큐로 푸시된 다음, 큐에서 이벤트 상태 변경을 감지하기 위해 루프가 사용됩니다. 상태 변경이 있는 이벤트가 감지되면 실행됩니다. 이 이벤트에 해당하는 처리 코드입니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, nodejs 버전 16, DELL G3 컴퓨터.
Node.js란 무엇인가요?
Node.js는 오픈 소스 및 크로스 플랫폼 JavaScript 런타임 환경, 즉 플랫폼입니다.
이벤트 중심, 비차단, 비동기 입력 및 출력 모델과 같은 기술을 사용하여 브라우저 외부에서 V8 JavaScript 엔진(Google Chrome의 핵심)을 실행하여 성능을 향상시킵니다.
Node.js는 서버측, 비차단 I/O, 이벤트 중심 JavaScript 실행 환경이라고 이해할 수 있습니다.
위에서 설명했듯이 Node.js에는 서버 측, 비차단 I/O, 이벤트 중심이라는 세 가지 특성이 있다고 결론짓는 것은 어렵지 않습니다. 다음으로 세 가지 기능을 분석합니다.
① 서버 측: 말 그대로 Node.js는 서버 측에서 실행되며 Javascript 실행 환경에 대한 환경 서비스를 제공합니다.
② 비차단 비동기: Node.js는 I/O 작업을 수행할 때 차단을 일으키지 않는 비차단 I/O 메커니즘을 채택합니다. 완료되면 작업 실행이 다음 형식으로 알려집니다. 시간의.
예를 들어 데이터베이스에 접근하는 코드가 실행된 후 바로 다음 코드가 실행되고, 데이터베이스 반환 결과에 대한 처리 코드가 콜백 함수에 배치되어 프로그램의 실행 효율성이 향상됩니다.
3 이벤트 중심: 이벤트 중심은 새 요청이 들어오면 요청이 이벤트 큐로 푸시된 다음 루프를 사용하여 큐의 이벤트 상태 변경을 감지하는 것을 의미합니다. 이벤트가 감지되면 해당 이벤트에 해당하는 처리 코드를 실행합니다. 이는 일반적으로 콜백 함수입니다.
예를 들어 파일을 읽는 경우 파일을 읽은 후 해당 상태가 트리거되고 해당 콜백 함수를 통해 처리됩니다.
지식 확장:
node.js는 단일 스레드 서비스입니다(JS는 원래 브라우저와 서버 측 모두에서 단일 스레드입니다). 동시에 세계 최대의 오픈소스 라이브러리 생태계인 npm을 보유하고 있습니다.
Node.js의 장점과 단점은 무엇인가요?
> 장점
고동시성 시나리오 처리 성능 향상
I/O 집약적 애플리케이션에 적합하며, 애플리케이션이 한도에서 실행될 때 CPU 사용량이 여전히 상대적으로 낮지만 대부분의 시간은 I/O 하드 디스크 메모리 읽기 및 쓰기 작업에 소요됩니다
> 단점
Node.js는 단일 스레드이므로 단점은 다음과 같습니다.
아님 CPU 집약적인 애플리케이션에 적합
단일 코어 CPU만 지원하고 CPU를 완전히 활용할 수 없습니다.
낮은 안정성 코드의 특정 링크가 충돌하면 전체 시스템이 무너집니다.
Node.js는 무엇을 할 수 있나요?
데이터 통계 및 분석
Node.js 모듈 시스템
Node.js 에는 전역 범위 개념이 없습니다.<br> <code>Node.js
에서는 여러 JavaScriptrequire
를 통해서만 로드하고 실행할 수 있습니다. > method./code> 스크립트 파일; require
는 해당 파일이 모듈 범위에 있으므로 오염 문제가 없습니다.Node.js
中没有全局作用域的概念;
在 Node.js
中,只能通过 require
方法来加载执行多个 JavaScript
脚本文件;require
加载只能是执行其中的代码,文件与文件之间由于是模块作用域,所以不会有污染的问题;
模块完全是封闭的
外部无法访问内部
内部也无法访问外部
模块作用域虽然可以带来了一些好处,可以加载执行多个文件,可以完全避免变量命名冲突污染的问题。
但是某些情况下,模块与模块是需要进行通信的。在每个模块中,都提供了一个对象:‘exports
’,该对象默认是一个空对象。
在使用过程中,需要被外部访问使用的成员手动的挂载到 ’exports
‘ 接口对象中,
然后谁来 ’require
‘ 这个模块,谁就可以得到模块内部的 exports
接口对象。
核心模块
核心模块是由 Node 提供的一个个的具名的模块,它们都有自己特殊的名称标识,例如:
fs
exports
' 개체가 제공됩니다. 내보내기
' 인터페이스 개체에 수동으로 마운트됩니다. require
' >'를 수행할 사람은 누구입니까? 이 모듈을 사용하면 누구나 모듈 내부에서 exports
인터페이스 개체를 얻을 수 있습니다. 🎜🎜🎜핵심 모듈🎜🎜🎜핵심 모듈은 Node에서 제공하는 이름이 지정된 모듈입니다. 다음과 같은 고유한 특수 이름 식별자가 있습니다. 🎜🎜🎜🎜fs
: 파일 작업 모듈🎜http
: 네트워크 서비스 구축 모듈 http
:网络服务构建模块
os
:操作系统信息模块
path
:路径处理模块
所有核心模块在使用的时候都必须手动的先使用 require
方法来加载,然后才可以使用,例如: ‘var fs = require('fs')’
Node.js 应用场景
借助Nodejs的特点和弊端,其应用场景分类如下:
善于I/O
,不善于计算。因为Nodejs是一个单线程,如果计算(同步)太多,则会阻塞这个线程;
大量并发的I/O
,应用程序内部并不需要进行非常复杂的处理;
与 websocket
配合,开发长连接的实时交互应用程序
,即:实时通讯 ;
具体场景可以表现为如下:
① 用户表单收集系统、后台管理系统、实时交互系统、考试系统、联网软件、高并发量的web应用程序;
② 基于web、canvas
等多人联网游戏;
③ 基于 web
的多人实时聊天客户端、聊天室、图文直播;
④ 单页面浏览器应用程序;
⑤操作数据库、为前端和移动端提供基于json的API;
其实,Node.js
path
: 경로 처리 모듈🎜 🎜🎜모든 핵심 모듈은 사용하기 전에 require
메서드를 사용하여 수동으로 로드해야 합니다. 예: 'var fs = require('fs' )'
🎜🎜Node.js 적용 시나리오🎜🎜Nodejs의 특징과 단점을 이용하여 적용 시나리오를 다음과 같이 분류합니다. 🎜I/O
는 잘하지만 계산은 잘 못해요. Nodejs는 단일 스레드이기 때문에 계산(동기화)이 너무 많으면 이 스레드가 차단됩니다. 🎜🎜🎜🎜많은 수의 동시 I/O
는 내부에서 매우 복잡한 처리가 필요하지 않습니다. 애플리케이션 🎜🎜🎜🎜은 websocket
과 협력하여 오랫동안 연결된 실시간 대화형 애플리케이션
을 개발합니다. 즉, 실시간 통신 🎜🎜Node.js
는 거의 모든 애플리케이션을 구현할 수 있지만 고려해야 할 것은 현재 시나리오가 적합한지 여부입니다. Node.js를 사용하는 경우, Node.js를 사용하는 것이 "최적의 솔루션"인지 여부는 성능 문제를 고려해야 합니다. 🎜🎜노드 관련 지식을 더 보려면 🎜nodejs 튜토리얼🎜을 방문하세요! 🎜위 내용은 node.js의 기능은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!