


Apakah perisian pertengahan Express? Bagaimana untuk menggunakannya dalam 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!
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() }
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)
6. Perisian tengah berkesan tempatan
<🎜. >Perisian tengah separa hanya berkuat kuasa pada laluan penghalaan tertentuconst mw = (req, res, next) => { next() } const mw1 = (req, res, next) => { next() } // 局部生效的中间件 server.get('/',mw,(req,res)=>{ res.send('路径:/') }) // 定义多个局部生效的中间件 // 1、直接逗号分隔 server.get('/',mw,mw1,(req,res)=>{ res.send('路径:/') }) // 2、或者使用数组包含 server.get('/',[mw,mw1],(req,res)=>{ res.send('路径:/') })
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() }
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('/',mw,mw1,(req,res)=>{ res.send(`请求进入服务器的时间:${req.startTime}`) })
Salin selepas log masukPerisian tengah peringkat penghalaanPerisian 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('./router/router') // 路由级别的中间件 router.use((req,res,next)=>{ next() })
Salin selepas log masukPeringkat 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('/err', (req, res) => { throw new Error('人为抛出错误!!!') res.send('err Page') }) // 定义错误级别的中间件 server.use((err, req, res, next) => { console.log('发生了错误:' + err.message); res.send('Error:'+err.message) next() })
Salin selepas log masukPerisian 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)
Perisian tengah pihak ketiga// 配置解析application/json格式数据的内置中间件 server.use(express.json()) // 配置解析application/x-www-form-urlencoded格式数据的内置中间件 server.use(express.urlencoded({ extended: false })) // 测试解析json的内置中间件 server.post('/user',(req,res)=>{ // 在服务器,可以使用req.body这个属性来接受客户端发送过来的请求数据 // 默认情况下,如果不配置解析表单数据的中间件,则req.body默认等于undefined console.log(req.body); res.send('ok') }) // 测试解析urlencoded的内置中间件 server.post('/book',(req,res)=>{ console.log(req.body) res.send('book ok') })
Salin selepas log masuk -
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 ketigasering digunakan untuk menghuraikan data kandungan permintaan. Langkah penggunaan adalah seperti berikut:
express@4.16.0
body-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.
- Pasang middleware
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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".

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!

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.

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!

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

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!

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 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
