Heim > Artikel > Web-Frontend > Lernen Sie Node.js kennen und sprechen Sie über die Modularität von Node
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!
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/
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.
Doppelklicken Sie zum Herunterladen auf die offizielle Homepage von Node.js (nodejs.org/en/)
① 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), 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 –vim Terminal eingegeben haben, können Sie die heruntergeladene Version anzeigen
Tastenkombinationen im Terminal, 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
und eine
große DateiDer Vorteil der Modularisierung 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)
Node
中的模块化内置模块(内置模块是由 Node.js
官方提供的,例如 fs
、path
、http
等)
自定义模块(用户创建的每个 .js
文件,都是自定 义模块)
第三方模块(由第三方开发出来的模块,并非官方提供的内置模块,也不是用户创建的自定义模块,使用前需要先下载)
使用 require
Lesen Sie den angegebenen Inhalt ein die Datei
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 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.
Grund:
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:
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 abParameterinterpretation:
• Path Erforderlicher Parameter, eine Zeichenfolge, die einen Pfad darstellt • 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 ****
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)
})
// 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('文件写入成功!')
})
http-Modul
Konzept:
Wird zumErstellen web
Servermodul 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
-Server verwandeln 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('http')
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,它们都代表我们自己的这台电脑,在使用效果上没有任何区别
在一台电脑中,可以运行成百上千个 web 服务
每个web 服务
都对应一个唯一的端口号
客户端发送过来的网络请求,通过端口号,可以被准确地交给对应的 web 服务
进行处理
创建web服务器
实现步骤和核心代码
// 1. 导入 http 模块 const http = require('http') // 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') })
req
请求对象const http = require('http') 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') })
res
响应对象
在服务器的 request 事件处理程序中,如果想访问与服务器相关的数据和属性,可以使用如下方式
server.on('request', function (req, res) { // res 是响应对象,它包含了与服务器相关的数据和属性 // 例如:将字符串发送到客户端 const str = `${req.url} -- ${req.method}` // res.end() 方法的作用 // 向客户端发送指定的内容,并结束这次请求的处理过程 res.end(str) })
当调用 res.end()
方法,向客户端发送中文内容的时候,会出现乱码问题,此时,需要手动设置内容的编码格式
const http = require('http') 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') })
url
响应不同的内容获取请求的 url
地址
设置默认的响应内容为 404 Not found
判断用户请求的是否为 /
或 /index.html
首页
判断用户请求的是否为 /about.html
关于页面
设置 Content-Type
响应头,防止中文乱码
使用 res.end()
把内容响应给客户端
const http = require('http') 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') })
更多编程相关知识,请访问:编程视频!!
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!