Jadual Kandungan
1. Apakah itu perisian tengah Ekspres
2. Proses memanggil perisian tengah Ekspres
3. Format Middleware
4. Peranan fungsi next()
5. Perisian tengah yang berkesan secara global
6. Perisian tengah berkesan tempatan
7 Peranan perisian tengah
8 Lima perkara yang perlu diberi perhatian tentang perisian tengah Ekspres
9 Klasifikasi perisian tengah Ekspres
Rumah hujung hadapan web tutorial js Apakah perisian pertengahan Express? Bagaimana untuk menggunakannya dalam Node?

Apakah perisian pertengahan Express? Bagaimana untuk menggunakannya dalam Node?

Feb 10, 2022 pm 07:01 PM
node

Apakah perisian pertengahan Express? Bagaimana untuk menggunakannya dalam Nod? Artikel berikut akan memperkenalkan anda kepada penggunaan perisian pertengahan Express yang mudah. ​​Saya harap ia akan membantu anda!

Apakah perisian pertengahan Express? Bagaimana untuk menggunakannya dalam Node?

1. Apakah itu perisian tengah Ekspres

Perisian tengah secara khusus merujuk kepada pautan pemprosesan perantaraan proses perniagaan.

2. Proses memanggil perisian tengah Ekspres

Apabila permintaan sampai ke pelayan Ekspres, beberapa perisian tengah boleh dipanggil secara berterusan untuk menyediakan permintaan.

3. Format Middleware

Pada asasnya ia adalah fungsi pemprosesan fungsi

Nota: senarai parameter rasmi fungsi middleware , mesti mengandungi parameter seterusnya. Fungsi pemprosesan penghalaan hanya mengandungi req dan res,

// next参数必须在最后一个传入
const mw = (req, res, next) => {
    ...
    // next()必须在最后调用
    next()
}
Salin selepas log masuk

4. Peranan fungsi next()

Fungsi seterusnya adalah untuk melaksanakan pelbagai middleware berterusan memanggil Kunci, yang bermaksud memindahkan hubungan aliran ke perisian tengah atau laluan seterusnya.

5. Perisian tengah yang berkesan secara global

Sebarang permintaan yang dimulakan oleh pelanggan akan mencetuskan perisian tengah selepas ia mencapai pelayan, yang dipanggil perisian pertengahan yang berkesan secara global. Dengan memanggil server.use (fungsi perisian tengah), anda boleh menentukan perisian tengah yang berkesan secara global Kod sampel adalah seperti berikut:

const mw = (req, res, next) => {
    next()
}

const mw1 = (req, res, next) => {
    next()
}

// 全局生效的中间件,中间件调用顺序以传入顺序为准
server.use(mw,mw1)
Salin selepas log masuk

6. Perisian tengah berkesan tempatan

<🎜. >Perisian tengah separa hanya berkuat kuasa pada laluan penghalaan tertentu

const mw = (req, res, next) => {
    next()
}
const mw1 = (req, res, next) => {
    next()
}
// 局部生效的中间件
server.get(&#39;/&#39;,mw,(req,res)=>{
    res.send(&#39;路径:/&#39;)
})



// 定义多个局部生效的中间件
// 1、直接逗号分隔
server.get(&#39;/&#39;,mw,mw1,(req,res)=>{
    res.send(&#39;路径:/&#39;)
})
// 2、或者使用数组包含
server.get(&#39;/&#39;,[mw,mw1],(req,res)=>{
    res.send(&#39;路径:/&#39;)
})
Salin selepas log masuk

7 Peranan perisian tengah

Dikongsi antara berbilang perisian tengah Permintaan dan res yang sama. Berdasarkan ciri ini, kami boleh menambah atribut atau kaedah tersuai secara seragam pada objek req atau res dalam perisian tengah huluan untuk digunakan oleh perisian tengah hiliran atau penghalaan.

const mw = (req, res, next) => {
    // 添加属性
    req.startTime=new Date()
    next()
}
Salin selepas log masuk

8 Lima perkara yang perlu diberi perhatian tentang perisian tengah Ekspres

  • Pastikan anda mendaftarkan perisian tengah sebelum membuat penghalaan

  • Permintaan yang dihantar daripada klien boleh diproses dengan memanggil berbilang middleware secara berterusan

  • Selepas melaksanakan kod perniagaan middleware, jangan lupa untuk memanggil Fungsi next()

  • Untuk mengelakkan kekeliruan logik kod, jangan tulis kod tambahan selepas memanggil fungsi next()

  • Apabila memanggil berbilang middleware secara berterusan , objek req dan res dikongsi antara berbilang perisian tengah

9 Klasifikasi perisian tengah Ekspres

  • Perisian tengah peringkat aplikasi<🎜. >

  • perisian tengah peringkat laluan
  • perisian tengah peringkat ralat
  • perisian tengah terbina dalam ekspres
  • Perisian tengah pihak ketiga
  • Pengenalan terperinci:

    Perisian tengah peringkat aplikasi
  • Perisian tengah yang terikat pada contoh apl melalui app.use() atau app.get() atau app.post() dipanggil perisian tengah peringkat aplikasi Contoh kod adalah seperti berikut :

    // 全局生效的中间件(应用级别的中间件)
    server.use(mw,mw1)
    // 局部生效的中间件(应用级别的中间件)
    server.get(&#39;/&#39;,mw,mw1,(req,res)=>{
        res.send(`请求进入服务器的时间:${req.startTime}`)
    })
    Salin selepas log masuk
  • Perisian tengah peringkat penghalaan
  • Perisian tengah yang terikat pada tika express.Router() dipanggil perisian tengah peringkat penghalaan. Penggunaannya tidak berbeza dengan perisian pertengahan peringkat aplikasi. Walau bagaimanapun, perisian tengah peringkat aplikasi terikat pada contoh apl dan perisian pertengahan peringkat laluan terikat pada tika penghala Contoh kod adalah seperti berikut:

    const router = require(&#39;./router/router&#39;)
    // 路由级别的中间件
    router.use((req,res,next)=>{
        next()
    })
    Salin selepas log masuk
  • Peringkat ralat. middleware
  • Peranan middleware peringkat ralat: Ia digunakan khas untuk menangkap ralat luar biasa yang berlaku dalam keseluruhan projek, dengan itu menghalang projek daripada ranap secara tidak normal.

    Format: Fungsi pemprosesan fungsi middleware tahap ralat mesti mempunyai 4 parameter formal Susunan parameter formal dari hadapan ke belakang ialah (err, req, res, next).

    Nota: Perisian tengah tahap ralat mesti didaftarkan selepas semua laluan!

    // 人为制造错误
    server.get(&#39;/err&#39;, (req, res) => {
        throw new Error(&#39;人为抛出错误!!!&#39;)
        res.send(&#39;err Page&#39;)
    })
    // 定义错误级别的中间件
    server.use((err, req, res, next) => {
        console.log(&#39;发生了错误:&#39; + err.message);
        res.send(&#39;Error:&#39;+err.message)
        next()
    })
    Salin selepas log masuk
  • Perisian tengah terbina dalam Ekspres
  • Sejak versi Express 4.16.0, Express mempunyai 3 perisian tengah yang biasa digunakan terbina dalam, yang meningkatkan kecekapan pembangunan dan pengalaman projek Express dengan sangat baik:

      perisian tengah terbina dalam cepat.ekspres.statik untuk mengehos sumber statik, seperti: fail HTML, imej, gaya CSS, dsb. (tiada keserasian)
    • express.json menghuraikan data kandungan permintaan dalam format JSON (dengan keserasian, Hanya tersedia dalam versi 4.16.0)
    • express.urlencoded parses meminta data kandungan dalam format URL-encoded (serasi, hanya tersedia dalam versi 4.16.0)
    // 配置解析application/json格式数据的内置中间件
    server.use(express.json())
    // 配置解析application/x-www-form-urlencoded格式数据的内置中间件
    server.use(express.urlencoded({
        extended: false
    }))
    // 测试解析json的内置中间件
    server.post(&#39;/user&#39;,(req,res)=>{
        // 在服务器,可以使用req.body这个属性来接受客户端发送过来的请求数据
        // 默认情况下,如果不配置解析表单数据的中间件,则req.body默认等于undefined
        console.log(req.body);
        res.send(&#39;ok&#39;)
    })
    
    // 测试解析urlencoded的内置中间件
    server.post(&#39;/book&#39;,(req,res)=>{
        console.log(req.body)
        res.send(&#39;book ok&#39;)
    })
    Salin selepas log masuk
    Perisian tengah pihak ketiga
  • Tidak dibina secara rasmi ke dalam Express, tetapi perisian tengah yang dibangunkan oleh pihak ketiga, dipanggil bahagian perisian tengah pihak ketiga. Dalam projek itu, anda boleh memuat turun dan mengkonfigurasi perisian tengah pihak ketiga atas permintaan, dengan itu meningkatkan kecekapan pembangunan projek. Contohnya: Dalam versi sebelum

    , perisian tengah pihak ketiga

    sering digunakan untuk menghuraikan data kandungan permintaan. Langkah penggunaan adalah seperti berikut: express@4.16.0body-parser

      Jalankan
    • Pasang middleware

      npm install body-parser

    • Gunakan memerlukan untuk mengimport middleware
    • Panggil
    • untuk mendaftar dan menggunakan perisian tengah

    Nota: Perisian tengah ekspres.urlenkod terbina dalam Express dirangkumkan lagi berdasarkan penghurai badan perisian tengah pihak ketiga.

  • Untuk lebih banyak pengetahuan berkaitan nod, sila lawati: tutorial nodejs!

    Atas ialah kandungan terperinci Apakah perisian pertengahan Express? Bagaimana untuk menggunakannya dalam Node?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk memadam nod dalam nvm Bagaimana untuk memadam nod dalam nvm Dec 29, 2022 am 10:07 AM

Cara memadam nod dengan nvm: 1. Muat turun "nvm-setup.zip" dan pasangkannya pada pemacu C 2. Konfigurasikan pembolehubah persekitaran dan semak nombor versi melalui arahan "nvm -v" 3. Gunakan "nvm arahan install" Pasang nod; 4. Padamkan nod yang dipasang melalui arahan "nvm uninstall".

Cara menggunakan ekspres untuk mengendalikan muat naik fail dalam projek nod Cara menggunakan ekspres untuk mengendalikan muat naik fail dalam projek nod Mar 28, 2023 pm 07:28 PM

Bagaimana untuk mengendalikan muat naik fail? Artikel berikut akan memperkenalkan kepada anda cara menggunakan ekspres untuk mengendalikan muat naik fail dalam projek nod saya harap ia akan membantu anda!

Bagaimana untuk melakukan pencerminan Docker perkhidmatan Node? Penjelasan terperinci tentang pengoptimuman melampau Bagaimana untuk melakukan pencerminan Docker perkhidmatan Node? Penjelasan terperinci tentang pengoptimuman melampau Oct 19, 2022 pm 07:38 PM

Dalam tempoh ini, saya sedang membangunkan perkhidmatan dinamik HTML yang biasa kepada semua kategori dokumen Tencent Untuk memudahkan penjanaan dan penggunaan akses kepada pelbagai kategori, dan untuk mematuhi trend beralih ke awan, saya sedang mempertimbangkan. menggunakan Docker untuk membetulkan kandungan perkhidmatan dan mengurus versi produk secara seragam. Artikel ini akan berkongsi pengalaman pengoptimuman yang saya kumpulkan dalam proses perkhidmatan Docker untuk rujukan anda.

Analisis mendalam tentang alat pengurusan proses Node 'pm2' Analisis mendalam tentang alat pengurusan proses Node 'pm2' Apr 03, 2023 pm 06:02 PM

Artikel ini akan berkongsi dengan anda alat pengurusan proses Node "pm2", dan bercakap tentang mengapa pm2 diperlukan, cara memasang dan menggunakan pm2, saya harap ia akan membantu semua orang!

PI Node Teaching: Apakah nod pi? Bagaimana cara memasang dan menyediakan nod pi? PI Node Teaching: Apakah nod pi? Bagaimana cara memasang dan menyediakan nod pi? Mar 05, 2025 pm 05:57 PM

Penjelasan dan Panduan Pemasangan Terperinci untuk Pinetwork Nodes Artikel ini akan memperkenalkan ekosistem pinetwork secara terperinci - nod pi, peranan utama dalam ekosistem pinetwork, dan menyediakan langkah -langkah lengkap untuk pemasangan dan konfigurasi. Selepas pelancaran Rangkaian Ujian Blockchain Pinetwork, nod PI telah menjadi bahagian penting dari banyak perintis yang aktif mengambil bahagian dalam ujian, bersiap sedia untuk pelepasan rangkaian utama yang akan datang. Jika anda tidak tahu kerja pinet, sila rujuk apa itu picoin? Berapakah harga untuk penyenaraian? Penggunaan PI, perlombongan dan analisis keselamatan. Apa itu Pinetwork? Projek Pinetwork bermula pada tahun 2019 dan memiliki syiling pi cryptocurrency eksklusifnya. Projek ini bertujuan untuk mewujudkan satu yang semua orang boleh mengambil bahagian

Mari kita bincangkan tentang cara menggunakan pkg untuk membungkus projek Node.js ke dalam fail boleh laku. Mari kita bincangkan tentang cara menggunakan pkg untuk membungkus projek Node.js ke dalam fail boleh laku. Dec 02, 2022 pm 09:06 PM

Bagaimana untuk membungkus fail boleh laku nodejs dengan pkg? Artikel berikut akan memperkenalkan kepada anda cara menggunakan pkg untuk membungkus projek Node ke dalam fail boleh laku. Saya harap ia akan membantu anda!

Apa yang perlu dilakukan jika npm nod gyp gagal Apa yang perlu dilakukan jika npm nod gyp gagal Dec 29, 2022 pm 02:42 PM

npm node gyp gagal kerana versi "node-gyp.js" dan "Node.js" tidak sepadan Penyelesaiannya: 1. Kosongkan cache nod melalui "npm cache clean -f" 2. Melalui "npm install -. g n" Pasang modul n; 3. Pasang versi "nod v12.21.0" melalui arahan "n v12.21.0".

Pengesahan berasaskan token dengan Angular dan Node Pengesahan berasaskan token dengan Angular dan Node Sep 01, 2023 pm 02:01 PM

Pengesahan adalah salah satu bahagian terpenting dalam mana-mana aplikasi web. Tutorial ini membincangkan sistem pengesahan berasaskan token dan cara ia berbeza daripada sistem log masuk tradisional. Pada penghujung tutorial ini, anda akan melihat demo berfungsi sepenuhnya yang ditulis dalam Angular dan Node.js. Sistem Pengesahan Tradisional Sebelum beralih kepada sistem pengesahan berasaskan token, mari kita lihat sistem pengesahan tradisional. Pengguna memberikan nama pengguna dan kata laluan mereka dalam borang log masuk dan klik Log Masuk. Selepas membuat permintaan, sahkan pengguna di bahagian belakang dengan menanyakan pangkalan data. Jika permintaan itu sah, sesi dibuat menggunakan maklumat pengguna yang diperoleh daripada pangkalan data dan maklumat sesi dikembalikan dalam pengepala respons supaya ID sesi disimpan dalam penyemak imbas. Menyediakan akses kepada aplikasi tertakluk kepada

See all articles