Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs

Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs

青灯夜游
青灯夜游nach vorne
2022-11-10 20:46:221267Durchsuche

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!

Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs

1. http-Modul

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.

1. Erstellen Sie einen Webserver. Überwachen Sie den 8080-Dienst Beispiel: Greifen Sie in der Ereignisverarbeitungsfunktion auf Daten oder Attribute zu, die sich auf den Client beziehen.

  • Auf dem Server müssen Sie eine Antwort verwenden. Beispiel: Antwort anfordern Chinesischer Inhalt wird dem Client angezeigt, es werden verstümmelte Zeichen angezeigt und müssen manuell eingestellt werden. Stellen Sie das Codierungsformat des Inhalts ein.
  • entsprechend verschiedenen URLs
Beispiel: Die Schritte sind wie folgt

Erhalten Sie die angeforderte URL-Adresse

Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs Setzen Sie den Standardantwortinhalt auf 404 Nicht gefunden

Bestimmen Sie, ob die Anfrage des Benutzers / oder /index.html Startseite ist Bestimmen Sie, ob die Anfrage des Benutzers /about.html About-Seite lautet.

Legen Sie den Content-Type-Antwortheader fest, um verstümmelte chinesische Zeichen zu vermeiden.

Verwenden Sie res.end(), um auf den Client zu antworten

Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs

2. Modulklassifizierung in Node.js usw.

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:

Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejsindex.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')
})
Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs

test .js-Datei

// 导入 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 zum

Teilen von Mitgliedern innerhalb des Moduls zur externen Verwendung. Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs

Wenn die externe Methode require() ein benutzerdefiniertes Modul importiert, erhalten Sie das Objekt, auf das module.exports zeigt. Beispiel:

Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs

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')
})

test.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 = `请求地址是 ${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')
})

    4、共享成员时的注意点

    使用 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)

    Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs

    5、exports 和 module.exports

    默认情况下,exports 和 module.exports 指向同一个对象

    最终共享的结果,还是以 module.exports 指向的对象为准。

    示例:

    index1.js 文件

    exports.username = '杂货铺'
    
    module.exports = {
        name: '前端杂货铺',
        age: 21
    }

    Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs

    index2.js 文件

    module.exports.username = 'zs'
    
    exports = {
        gender: '男',
        age: 22
    }

    Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs

    index3.js 文件

    exports.username = '杂货铺'
    
    module.exports.age = 21

    Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs

    index4.js 文件

    exports = {
        gender: '男',
        age: 21
    }
    
    module.exports = exports
    
    module.exports.username = 'zs'

    Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs

    对 index2.js 文件结果的解析如下:

    Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs
    对 index4.js 文件结果的解析如下:
    Eine kurze Analyse des http-Moduls und der Exportfreigabe in Nodejs
    注意:为防止混乱,尽量不要在同一个模块中同时使用 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen