In diesem Artikel geht es um die Grundlagen von node, das Verständnis und die Fälle der Exportfreigabe von http-Modulen und module.exports. Ich hoffe, dass er für alle hilfreich ist!
Das http-Modul ist ein offiziell von Node.js bereitgestelltes Modul zum Erstellen von Webservern. [Verwandte Tutorial-Empfehlungen: nodejs-Video-Tutorial]
Mit der vom http-Modul bereitgestellten Methode http.createServer() können Sie einen normalen Computer problemlos in einen Webserver verwandeln, um externe Webressourcendienste bereitzustellen.
Erhalten Sie die angeforderte URL-Adresse
Setzen Sie den Standardantwortinhalt auf 404 Nicht gefunden
Legen Sie den Content-Type-Antwortheader fest, um verstümmelte chinesische Zeichen zu vermeiden.
Verwenden Sie res.end(), um auf den Client zu antworten
Benutzerdefinierte Module: Jede vom Benutzer erstellte .js-Datei ist ein benutzerdefiniertes Modul.
Modul von Drittanbietern: Von Drittanbietern entwickelte Module müssen vor der Verwendung heruntergeladen werden. Der Umfang des Moduls verhindert das Problem der globalen variablen VerschmutzungBeispiel:
index.js-Datei
// 导入 http 模块 const http = require('http') // 创建 web 服务器实例 const server = http.createServer() // 为服务器实例绑定 request 事件 监听客户端的请求 server.on('request', function (req, res) { console.log('请求中...') }) // 启动服务 server.listen(8080, function () { console.log('http://127.0.0.1:8080') })
// 导入 http 模块 const http = require('http') // 创建 web 服务器实例 const server = http.createServer() // req 是请求对象 包含了与客户端相关的数据和属性 server.on('request', (req) => { // 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) }) // 启动服务 server.listen(8080, function () { console.log('http://127.0.0.1:8080') })
3. module.exports-Objekt
In einem benutzerdefinierten Modul können Sie verwenden die module.exports-Objekt zumTeilen von Mitgliedern innerhalb des Moduls zur externen Verwendung.
Wenn die externe Methode require() ein benutzerdefiniertes Modul importiert, erhalten Sie das Objekt, auf das module.exports zeigt. Beispiel: index.js-Datei// 导入 http 模块 const http = require('http') // 创建 web 服务器实例 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(8080, function () { console.log('http://127.0.0.1:8080') })
// 导入 http 模块
const http = require('http')
// 创建 web 服务器实例
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 = `请求地址是 ${url} 请求方法是 ${method}`
console.log(str)
// 设置 Content-Type 响应头 解决中文乱码问题
res.setHeader('Content-Type', 'text/html; charset=utf-8')
// 调用 res.end() 方法 向客户端响应一些内容
res.end(str)
})
// 启动服务
server.listen(8080, function () {
console.log('http://127.0.0.1:8080')
})
使用 require() 方法导入模块时,导入的结果,永远以 module.exports 指向的对象为准
示例:
index.js 文件
module.exports.username = '李四' module.exports.sayHello = function () { console.log('Hello!') } // 让 module.exports 指向一个新对象 module.exports = { nickname: '张三', sayHi() { console.log('Hi!') } }
test.js 文件
const m = require('./index') console.log(m)
默认情况下,exports 和 module.exports 指向同一个对象。
最终共享的结果,还是以 module.exports 指向的对象为准。
示例:
index1.js 文件
exports.username = '杂货铺' module.exports = { name: '前端杂货铺', age: 21 }
index2.js 文件
module.exports.username = 'zs' exports = { gender: '男', age: 22 }
index3.js 文件
exports.username = '杂货铺' module.exports.age = 21
index4.js 文件
exports = { gender: '男', age: 21 } module.exports = exports module.exports.username = 'zs'
对 index2.js 文件结果的解析如下:
对 index4.js 文件结果的解析如下:
注意:为防止混乱,尽量不要在同一个模块中同时使用 exports 和 module.exports
更多node相关知识,请访问:nodejs 教程!
Das obige ist der detaillierte Inhalt vonEine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!