nodejs weist drei Merkmale auf: 1. Serverseitig; Nodejs wird auf der Serverseite ausgeführt und stellt Umgebungsdienste für die laufende Umgebung von Javascript bereit. 2. Nicht blockierendes asynchrones Verfahren. Nodejs verwendet einen nicht blockierenden E/A-Mechanismus, der bei der Ausführung von E/A-Vorgängen keine Blockierung verursacht. 3. Ereignisgesteuert; wenn eine neue Anfrage eingeht, wird die Anfrage in eine Ereigniswarteschlange verschoben und dann wird eine Schleife verwendet, um Ereignisstatusänderungen in der Warteschlange zu erkennen. Wenn ein Ereignis mit einer Statusänderung erkannt wird, wird es ausgeführt Der diesem Ereignis entsprechende Verarbeitungscode.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, NodeJS Version 16, DELL G3-Computer.
Was ist Node.js?
Node.js ist eine Open-Source- und plattformübergreifende JavaScript-Laufzeitumgebung, oder mit anderen Worten, eine Plattform.
Führen Sie die V8-JavaScript-Engine (den Kern von Google Chrome) außerhalb des Browsers aus und nutzen Sie Technologien wie ereignisgesteuerte, nicht blockierende und asynchrone Eingabe- und Ausgabemodelle, um die Leistung zu verbessern.
Es versteht sich, dass Node.js eine serverseitige, nicht blockierende E/A- und ereignisgesteuerte JavaScript-Ausführungsumgebung ist.
Wie oben beschrieben, ist es nicht schwer, den Schluss zu ziehen, dass Node.js drei Merkmale aufweist: serverseitig, nicht blockierende E/A und ereignisgesteuert. Als nächstes analysieren wir die drei Funktionen:
① Serverseite: Im wahrsten Sinne des Wortes läuft Node.js auf der Serverseite und stellt Umgebungsdienste für die laufende Umgebung von Javascript bereit.
② Nicht blockierend asynchron: Node.js verwendet einen nicht blockierenden E/A-Mechanismus, der bei der Ausführung von E/A-Vorgängen keine Blockierung verursacht. Nach Abschluss wird die Ausführung des Vorgangs im Formular benachrichtigt der Zeit.
Nachdem beispielsweise der Code ausgeführt wurde, der auf die Datenbank zugreift, wird der nachfolgende Code sofort ausgeführt und der Verarbeitungscode für das Rückgabeergebnis der Datenbank wird in die Rückruffunktion eingefügt, wodurch die Ausführungseffizienz des Programms verbessert wird.
③ Ereignisgesteuert: Ereignisgesteuert bedeutet, dass, wenn eine neue Anfrage eingeht, die Anfrage in eine Ereigniswarteschlange verschoben wird und dann eine Schleife verwendet wird, um Ereignisstatusänderungen in der Warteschlange zu erkennen, wenn sich der Status ändert Wenn ein Ereignis erkannt wird, führen Sie dann den dem Ereignis entsprechenden Verarbeitungscode aus, bei dem es sich normalerweise um eine Rückruffunktion handelt
Beim Lesen einer Datei wird beispielsweise nach dem Lesen der Datei der entsprechende Status ausgelöst und dann über den entsprechenden Rückruf verarbeitet Funktion
Wissenserweiterung:
node.js ist ein Single-Thread-Dienst (JS ist ursprünglich sowohl auf der Browser- als auch auf der Serverseite Single-Threaded). Gleichzeitig verfügt es über das weltweit größte Open-Source-Bibliotheksökosystem: npm.
Was sind die Vor- und Nachteile von Node.js?
> Vorteile
Bessere Leistung bei der Handhabung von Szenarien mit hoher Parallelität
Geeignet für E/A-intensive Anwendungen. Der Wert liegt darin, dass die CPU-Auslastung sinkt, wenn die Anwendung am Limit läuft ist immer noch relativ gering. Die meiste Zeit wird für Lese- und Schreibvorgänge im E/A-Festplattenspeicher aufgewendet. Nachteile: Da Node.js Single-Threaded ist, sind die Nachteile: Nicht geeignet für CPU-intensive Anwendungen
Unterstützt nur Single-Core-CPUs und kann die CPU nicht vollständig nutzen
Geringe Zuverlässigkeit Sobald ein bestimmter Link des Codes abstürzt, bricht das gesamte System zusammen.
Speichern Sie die vom Benutzer übermittelten Daten.
Datenstatistik und -analyse ;
In Node.js
können mehrere JavaScriptrequire
geladen und ausgeführt werden > Methode. /code> Skriptdatei; require
kann nur durch Ausführen des darin enthaltenen Codes geladen werden, da es kein Verschmutzungsproblem gibt Das Modul ist vollständig geschlossen
exports
“, das standardmäßig ein leeres Objekt ist. exports
“ eingebunden. require
“ > angezeigt. Mit diesem Modul kann jeder das Schnittstellenobjekt exports
innerhalb des Moduls abrufen. KernmoduleKernmodule sind benannte Module, die von Node bereitgestellt werden. Sie haben ihre eigenen speziellen Namensbezeichner, wie zum Beispiel:
Node.js
中没有全局作用域的概念;
在 Node.js
中,只能通过 require
方法来加载执行多个 JavaScript
脚本文件;require
加载只能是执行其中的代码,文件与文件之间由于是模块作用域,所以不会有污染的问题;
模块完全是封闭的
外部无法访问内部
内部也无法访问外部
模块作用域虽然可以带来了一些好处,可以加载执行多个文件,可以完全避免变量命名冲突污染的问题。
但是某些情况下,模块与模块是需要进行通信的。在每个模块中,都提供了一个对象:‘exports
’,该对象默认是一个空对象。
在使用过程中,需要被外部访问使用的成员手动的挂载到 ’exports
‘ 接口对象中,
然后谁来 ’require
‘ 这个模块,谁就可以得到模块内部的 exports
接口对象。
核心模块
核心模块是由 Node 提供的一个个的具名的模块,它们都有自己特殊的名称标识,例如:
fs
fs
: Dateioperationsmodul
http
: Modul zum Aufbau von Netzwerkdiensten 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
os
: Betriebssysteminformationsmodul
path
: Pfadverarbeitungsmodul🎜 🎜🎜Alle Kernmodule müssen manuell mit der Methode require
geladen werden, bevor sie verwendet werden können, zum Beispiel: 'var fs = require('fs' )'
🎜🎜Node.js-Anwendungsszenarien🎜🎜Unter Verwendung der Eigenschaften und Nachteile von Nodejs werden seine Anwendungsszenarien wie folgt klassifiziert: 🎜I/O
, aber nicht gut in der Berechnung. Da es sich bei Nodejs um einen einzelnen Thread handelt, wird dieser Thread blockiert, wenn zu viele Berechnungen (Synchronisation) durchgeführt werden. Eine große Anzahl gleichzeitiger I/O
erfordert keine sehr komplexe Verarbeitung innerhalb des Anwendung 🎜🎜🎜🎜 arbeitet mit websocket
zusammen, um lange verbundene interaktive Echtzeitanwendungen
zu entwickeln, das heißt: Echtzeitkommunikation 🎜🎜Web, Canvas und andere Multiplayer-Online-Spiele; 🎜🎜③ Echtzeit-Chat-Client für mehrere Personen, grafische Live-Übertragung basierend auf <code>Web
; 🎜⑤ Betriebsdatenbank, bereitgestellt für Front-End- und mobile Terminals API basierend auf JSON 🎜🎜Tatsächlich kann Node.js
fast alle Anwendungen realisieren, aber es muss berücksichtigt werden, ob das aktuelle Szenario für die Verwendung von Node.js geeignet ist und ob die Verwendung von Node.js die „optimale Lösung“ ist, müssen Leistungsprobleme berücksichtigt werden. 🎜🎜Weitere Informationen zu Knoten finden Sie unter: 🎜nodejs-Tutorial🎜! 🎜Das obige ist der detaillierte Inhalt vonWas sind die Funktionen von node.js?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!