Heim > Web-Frontend > js-Tutorial > Lernen Sie Node.js kennen und sprechen Sie über die Modularität von Node

Lernen Sie Node.js kennen und sprechen Sie über die Modularität von Node

青灯夜游
Freigeben: 2021-11-02 10:30:30
nach vorne
1712 Leute haben es durchsucht

Dieser Artikel stellt Ihnen Node.js vor, zeigt Ihnen, wie Sie die Versionsnummer des installierten Node.js überprüfen und spricht über die Modularisierung von Node. Ich hoffe, dass er für alle hilfreich ist!

Lernen Sie Node.js kennen und sprechen Sie über die Modularität von Node

Einführung in Node.js

Konzept: ist eine JavaScript-Laufumgebung basierend auf der Chrome V8-Engine. [Empfohlenes Lernen: „nodejs Tutorial“]

Node.js offizielle Website-Adresse: https://nodejs.org/zh-cn/

JavaScript-Laufumgebung in Node.js

Lernen Sie Node.js kennen und sprechen Sie über die Modularität von Node

Hinweis :

① Der Browser ist die Front-End-Laufumgebung für JavaScript.

② Node.js ist die Back-End-Laufumgebung für JavaScript.

③ DOM und BOM usw.

Die integrierte Browser-API kann in Node.js nicht aufgerufen werden.

Installation der Node.js-Umgebung

Doppelklicken Sie zum Herunterladen auf die offizielle Homepage von Node.js (nodejs.org/en/)

Lernen Sie Node.js kennen und sprechen Sie über die Modularität von Node

Der Unterschied zwischen der LTS-Version und der aktuellen Version

① LTS ist eine langfristig stabile Version. Für Projekte auf Unternehmensebene, die Stabilität anstreben, wird empfohlen, die LTS-Version von Node.js zu installieren.

② Current ist eine Early-Adopter-Version neuer Funktionen. Für Benutzer, die gerne neue Funktionen ausprobieren möchten, wird empfohlen, die aktuelle Version von Node.js zu installieren. Die aktuelle Version kann jedoch versteckte Fehler oder Sicherheitslücken enthalten. Daher wird die Verwendung der aktuellen Version von Node.js in Projekten auf Unternehmensebene nicht empfohlen.

Überprüfen Sie die Versionsnummer des installierten Node.js

Verwenden Sie die Tastenkombination (

Windows-Logo-Taste + R

), um das Ausführungsfeld zu öffnen, geben Sie cmd ein und drücken Sie direkt die Eingabetaste, um das Terminal zu öffnenÖffnen Das Terminal. Nachdem Sie den Befehl

node –v

im Terminal eingegeben haben, können Sie die heruntergeladene Version anzeigen

Tastenkombinationen im Terminal

① Verwenden Sie die Taste

, um schnell den zuletzt ausgeführten Befehl zu finden ② Verwenden Sie die

Tab-Taste. Die

-Taste kann den Pfad schnell vervollständigen.③. Verwenden Sie die

esc-Taste, um den aktuell eingegebenen Befehl schnell zu löschen.

Modularisierung bezeichnet den Prozess der Aufteilung des Systems in mehrere Module von oben nach unten Schicht für Schicht bei der Lösung eines komplexen Problems

. Für das gesamte System sind Module Einheiten, die kombiniert, zerlegt und ersetzt werden können

Modularisierung im Bereich der Programmierung besteht darin,

festen Regeln zu folgen

und eine

große Datei
    in
  • unabhängige und voneinander abhängige Mehrere kleine Module aufzuteilen

    Der Vorteil der Modularisierung des Codes

  • Verbessert die Wiederverwendbarkeit des Codes.

    Verbessert die Wartbarkeit des Codes. code> Eingebaute Module (integrierte Module werden offiziell von Node.js bereitgestellt, wie z. B. fs, path , http usw.)

  • Benutzerdefiniertes Modul (jede vom Benutzer erstellte .js-Datei ist ein benutzerdefiniertes Modul)

    • Module von Drittanbietern (Module Von Dritten entwickelte Module sind keine offiziell bereitgestellten integrierten Module und es handelt sich auch nicht um benutzerdefinierte Module, die von Benutzern erstellt wurden.
    • Sie müssen sie herunterladen, bevor Sie sie verwenden können
    • fs-Dateisystemmodul
  • fs-Modul ist ein offiziell von Node.js bereitgestelltes Modul zum Betreiben von Dateien. Es bietet eine Reihe von Methoden und Attributen, um die Dateioperationsanforderungen der Benutzer zu erfüllen. Wenn Sie das fs-Modul zum Betreiben von Dateien verwenden, müssen Sie es zuerst auf die folgende Weise importieren:

Node 中的模块化

  • 内置模块(内置模块是由 Node.js 官方提供的,例如 fspathhttp 等)

  • 自定义模块(用户创建的每个 .js 文件,都是自定 义模块)

  • 第三方模块(由第三方开发出来的模块,并非官方提供的内置模块,也不是用户创建的自定义模块,使用前需要先下载

使用 requireLesen Sie den angegebenen Inhalt ein die Datei

1. Syntaxformat von

fs.readFile()

Lernen Sie Node.js kennen und sprechen Sie über die Modularität von Node Parameterinterpretation:

• Parameter 1: Erforderlich Parameter, Zeichenfolge, der den Pfad der Datei angibt.

• Parameter 2: Optionaler Parameter, der angibt, welches Kodierungsformat zum Lesen der Datei verwendet wird.

• Parameter 3: Erforderlicher Parameter Nachdem das Lesen der Datei abgeschlossen ist, wird das Leseergebnis über die Rückruffunktion abgerufen. ?? , müssen Sie angeben eine Zeichenfolge von

Dateipfad

, die den Speicherpfad der Datei darstellt. • Parameter 2:

Erforderlicher

Parameter, der den zu schreibenden Inhalt angibt. • Parameter 3: Optionaler Parameter, der das Format angibt, in das der Dateiinhalt geschrieben werden soll. Der Standardwert ist

utf8

. • Parameter 4: Erforderlicher Parameter, Rückruffunktion nach Abschluss des Dateischreibens. 🔜 sehr schwierig sein Es ist anfällig für Probleme mit Fehlern beim dynamischen Pfadspleißen.

Lernen Sie Node.js kennen und sprechen Sie über die Modularität von NodeGrund:

Wenn der Code ausgeführt wird,

wird der vollständige Pfad der bearbeiteten Datei dynamisch aus dem Verzeichnis zusammengefügt, in dem der Knotenbefehl ausgeführt wird.

Lösung: Wenn Sie das fs-Modul zum Bearbeiten von Dateien verwenden, geben Sie den vollständigen Pfad direkt an

und geben Sie keine relativen Pfade an, die mit ./ oder ../ beginnen, um das Problem des dynamischen Pfadspleißens zu vermeiden.

Pfadpfadmodul

Konzept:

ist ein von Node.js offiziell bereitgestelltes Modul zur Verarbeitung von Pfaden

1. path.join()-Methode,

wird zum Kombinieren mehrerer Pfadfragmente verwendet in eine vollständige Pfadzeichenfolge gespleißt

Grammatikformat

Parameterinterpretation: • ...paths Folge von Pfadfragmenten

• Rückgabewert:

Lernen Sie Node.js kennen und sprechen Sie über die Modularität von Node

Codebeispiel

Hinweis: In Zukunft müssen alle Vorgänge, die Pfadspleißen beinhalten, mit der Methode path.join() verarbeitet werden. Verwenden Sie + nicht direkt zum Verketten von Zeichenfolgen.

2. path.basename() Ruft den Dateinamen im Pfad ab

Parameterinterpretation:

• Path Erforderlicher Parameter, eine Zeichenfolge, die einen Pfad darstellt Lernen Sie Node.js kennen und sprechen Sie über die Modularität von Node • ext Optionaler Parameter, der die Dateierweiterung darstellt

• Rückgabe : Stellt den letzten Teil des Pfads dar. Codebeispiel: Interpretation :

• Pfad erforderlicher Parameter, eine Zeichenfolge, die einen Pfad darstellt

• Rückgabe: Gibt die erhaltene Erweiterungszeichenfolge zurück

****
Codebeispiel

Lernen Sie Node.js kennen und sprechen Sie über die Modularität von Node

Umfassender Fall – Uhr Fall

Anforderungen:

Teilen Sie die Seite page.html im Materialverzeichnis in drei Dateien auf:

• index.css

• index.js

• index.html

Material page.html

  // 1. 导入 fs 模块,来操作文件
  const fs = require('fs')
  // 2. 调用 fs.readFile() 方法读取文件
    //  参数1:读取文件的存放路径
    //  参数2:读取文件时候采用的编码格式,一般默认指定 utf8
    //  参数3:回调函数,拿到读取失败和成功的结果  err  dataStr
  fs.readFile('./files/11.txt', 'utf8', function(err, dataStr) {
    // 2.1 打印失败的结果
    // 如果读取成功,则 err 的值为 null
   // 如果读取失败,则 err 的值为 错误对象,dataStr 的值为 undefined
   // console.log(err)
   // console.log('-------')
   // 2.2 打印成功的结果
   console.log(dataStr)
   // 判断文件是否读取成功
   if (err) {
     return console.log("读取文件失败!" + err.message)
   }
   console.log("读取文件成功!" + dataStr)
 })
Nach dem Login kopieren

Der geteilte Code lautet wie folgt:

  // 1. 导入 fs 文件系统模块
  const fs = require('fs')
  // 2. 调用 fs.writeFile() 方法,写入文件的内容
  //    参数1:表示文件的存放路径
  //    参数2:表示要写入的内容
  //    参数3:回调函数
  fs.writeFile('./files/3.txt', 'ok123', function(err) {
  // 2.1 如果文件写入成功,则 err 的值等于 null
  // 2.2 如果文件写入失败,则 err 的值等于一个 错误对象
 console.log(err)
 // 3判断文件是否写入成功
 if (err) {
     return console.log('文件写入失败!' + err.message)
   }
   console.log('文件写入成功!')
 })
Nach dem Login kopieren
Lernen Sie Node.js kennen und sprechen Sie über die Modularität von Nodehttp-Modul

Konzept:

Wird zum

Erstellen web

Servermodul Lernen Sie Node.js kennen und sprechen Sie über die Modularität von Node verwendet. Mit der Methode

http.createServer()

, die vom Modul http bereitgestellt wird, können Sie einen gewöhnlichen Computer ganz einfach in einen bereitzustellenden Web</code >-Server verwandeln <code>Web-Ressourcendienste für die Außenwelt

Wenn Sie das http-Modul verwenden, um einen Web-Server zu erstellen, müssen Sie ihn zuerst importieren:

const http = require(&#39;http&#39;)
Nach dem Login kopieren

http 模块的作用:

1、服务器和普通电脑的区别在于,服务器上安装了 web 服务器软件

2、我可可以基于 Node.js 提供的 http 模块,通过几行简单的代码,就能轻松的手写一个服务器软件,从而对外提供 web 服务

服务器相关的概念

ip 地址

  • IP 地址就是互联网上每台计算机的唯一地址,因此 IP 地址 具有唯一性

  • IP 地址 的格式:通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d 都是 0~255 之间的十进制整数

    例如:用点分十进表示的 IP地址(192.168.1.1)

域名和域名服务器

  • 尽管 IP 地址 能够唯一地标记网络上的计算机,但 IP地址 是一长串数字,不直观,而且不便于记忆,于是人们又发明了另一套字符型的地址方案,即所谓的域名地址(Domain Name)

  • IP地址域名 是一一对应的关系,这份对应关系存放在一种叫做域名服务器 (DNS,Domain name server) 的电脑中。使用者只需通过好记的域名访问对应的服务器即可,对应的转换工作由域名服务器实现。因此,域名服务器就是提供 IP 地址 和域名之间的转换服务的服务器

注意事项:

1. 单纯使用 `IP 地址`,互联网中的电脑也能够正常工作。但是有了域名的加持,能让互联网的世界变得更加方便
2.在开发测试期间, 127.0.0.1 对应的域名是 localhost,它们都代表我们自己的这台电脑,在使用效果上没有任何区别
Nach dem Login kopieren

端口号

  • 在一台电脑中,可以运行成百上千个 web 服务

  • 每个web 服务 都对应一个唯一的端口号

  • 客户端发送过来的网络请求,通过端口号,可以被准确地交给对应的 web 服务 进行处理

1Lernen Sie Node.js kennen und sprechen Sie über die Modularität von Node

创建web服务器

实现步骤和核心代码

  // 1. 导入 http 模块
  const http = require(&#39;http&#39;)
  // 2. 创建 web 服务器实例
  // 调用 http.createServer() 方法,即可快速创建一个 web 服务器实例
  const server = http.createServer()
  // 3. 为服务器实例绑定 request 事件
  // 为服务器实例绑定 request 事件,即可监听客户端发送过来的网络请求
  // 使用服务器实例的 .on() 方法,为服务器绑定一个 request 事件
  server.on('request', function (req, res) {
   console.log('Someone visit our web server.')
 })
 // 4.调用服务器实例的 .listen() 方法,即可启动当前的 web 服务器实例
 server.listen(8080, function () {  
   console.log('server running at http://127.0.0.1:8080')
 })
Nach dem Login kopieren

req 请求对象

  const http = require(&#39;http&#39;)
  const server = http.createServer()
  // req 是请求对象,包含了与客户端相关的数据和属性
  server.on('request', (req, res) => {
    // req.url 是客户端请求的 URL 地址
    const url = req.url
    // req.method 是客户端请求的 method 类型
    const method = req.method
    const str = `Your request url is ${url}, and request method is ${method}`
   console.log(str)
   // 调用 res.end() 方法,向客户端响应一些内容
   res.end(str)
 })
 server.listen(80, () => {
   console.log('server running at http://127.0.0.1')
 })
Nach dem Login kopieren

res 响应对象

在服务器的 request 事件处理程序中,如果想访问与服务器相关的数据和属性,可以使用如下方式

  server.on(&#39;request&#39;, function (req, res) {
    // res 是响应对象,它包含了与服务器相关的数据和属性
    // 例如:将字符串发送到客户端
  
    const str = `${req.url} -- ${req.method}`
    
    // res.end() 方法的作用
    // 向客户端发送指定的内容,并结束这次请求的处理过程
    res.end(str)
 })
Nach dem Login kopieren

解决中文乱码问题

当调用 res.end() 方法,向客户端发送中文内容的时候,会出现乱码问题,此时,需要手动设置内容的编码格式

  const http = require(&#39;http&#39;)
  const server = http.createServer()
  
  server.on('request', (req, res) => {
    // 定义一个字符串,包含中文的内容
    const str = `您请求的 URL 地址是 ${req.url},请求的 method 类型为 ${req.method}`
   // 调用 res.setHeader() 方法,设置 Content-Type 响应头,解决中文乱码的问题
    res.setHeader('Content-Type', 'text/html; charset=utf-8') 9   // res.end() 将内容响应给客户端
   res.end(str)
 })
 
 server.listen(80, () => {
   console.log('server running at http://127.0.0.1')
 })
Nach dem Login kopieren

根据不同的 url 响应不同的内容

核心实现步骤

  • 获取请求的 url 地址

  • 设置默认的响应内容为 404 Not found

  • 判断用户请求的是否为 //index.html 首页

  • 判断用户请求的是否为 /about.html 关于页面

  • 设置 Content-Type 响应头,防止中文乱码

  • 使用 res.end() 把内容响应给客户端

  const http = require(&#39;http&#39;)
  const server = http.createServer()
  
  server.on('request', (req, res) => {
    // 1. 获取请求的 url 地址
    const url = req.url
    // 2. 设置默认的响应内容为 404 Not found
    let content = '

404 Not found!

' // 3. 判断用户请求的是否为 / 或 /index.html 首页 // 4. 判断用户请求的是否为 /about.html 关于页面 if (url === '/' || url === '/index.html') { content = '

首页

' } else if (url === '/about.html') { content = '

关于页面

' } // 5. 设置 Content-Type 响应头,防止中文乱码 res.setHeader('Content-Type', 'text/html; charset=utf-8') // 6. 使用 res.end() 把内容响应给客户端 res.end(content) }) server.listen(80, () => { console.log('server running at http://127.0.0.1') })
Nach dem Login kopieren

更多编程相关知识,请访问:编程视频!!

Das obige ist der detaillierte Inhalt vonLernen Sie Node.js kennen und sprechen Sie über die Modularität von Node. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:juejin.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage