- Connect adalah rangka kerja pelayan HTTP yang boleh diperluaskan untuk Node.js yang membolehkan pemaju menulis komponen modular dan boleh diguna semula menggunakan plugin middleware. Plugin ini sama ada memproses dan menyampaikan permintaan, atau mengendalikan permintaan secara langsung.
- Komponen middleware dicipta menggunakan fungsi yang menerima permintaan, tindak balas, dan parameter seterusnya. Parameter 'seterusnya' mewakili pengendali seterusnya dalam rantai. Komponen ini kemudiannya digunakan dalam pelayan Connect menggunakan fungsi penggunaan ().
- Komponen middleware berganda boleh digunakan dalam Connect, dengan setiap komponen yang melaksanakan fungsi khusus seperti butiran permintaan pembalakan atau memberikan respons. Perintah penggunaan middleware adalah penting, kerana ia dilaksanakan dalam urutan yang ditambahkan ke pelayan.
- Connect membolehkan penambahan pengendali pengesahan untuk bahagian tertentu laman web. Ini dicapai dengan menggunakan fungsi penggunaan (), yang boleh mengambil parameter pertama sebagai jalan dalam request.url untuk pengendali untuk dipanggil. Pengendali Pengesahan memeriksa tajuk kebenaran, menguraikan nama pengguna/kata laluan, dan menyemaknya terhadap fail JSON untuk kebenaran.
- Jika anda perlu menulis komponen modular dan boleh diguna semula, Connect boleh menjadi penyelesaian terbaik untuk anda. Ia berkaitan dengan
Komponen middleware adalah plugin yang mendapat permintaan dan kemudian melakukan beberapa pemprosesan, selepas itu ia mungkin mengendalikan dan menamatkan permintaan atau lulus pada plugin middleware seterusnya. Plugin yang memproses permintaan dan lulus pada pengendali seterusnya dipanggil
penapis , manakala yang sebenarnya mengendalikan permintaan itu dikenali sebagai penyedia . Dalam kumpulan pertama, kami dapat mencari plugin logging plugin atau plugin pengesahan, hanya untuk menyebut beberapa contoh. Bagi penyedia, mereka akan menjadi sebahagian daripada logik perniagaan permohonan anda.
Dalam artikel ini, anda akan melihat bagaimana untuk memulakan dan menggunakan rangka kerja middleware Connect dalam aplikasi Node.js anda.Menyediakan sambung
Untuk Node.js, kebergantungan pakej dilakukan dengan NPM, yang membolehkan anda menentukan dan mendapatkan pakej bergantung yang diperlukan untuk permohonan anda. Ketergantungan pakej untuk NPM ditakrifkan dalam fail yang dipanggil Package.json. Walaupun fail ini boleh ditulis dengan tangan, lebih baik dan sangat disyorkan untuk menggunakan arahan NPM untuk menciptanya. Untuk mencapai tugas ini, jalankan arahan berikut:$ npm initDan kemudian eply kepada soalan -soalan yang akan ditunjukkan (seperti nama pakej dan sebagainya). Setelah selesai, fail "Package.json" anda harus muncul dalam folder root dengan kandungan yang menyerupai yang di bawah:
<span>{ </span> <span>"name": "nodejs-connect-demo", </span> <span>"version": "1.0.0", </span> <span>"description": "Demo on how to use connect framework for Node.js", </span> <span>"main": "server.js", </span> <span>"scripts": { </span> <span>"test": "echo \"Error: no test specified\" && exit 1" </span> <span>}, </span> <span>"repository": { </span> <span>"type": "git", </span> <span>"url": "https://github.com/abbassoftware/nodejs-connect-demo.git" </span> <span>}, </span> <span>"keywords": [ </span> <span>"connect" </span> <span>], </span> <span>"author": "Abbas", </span> <span>"license": "", </span> <span>"bugs": { </span> <span>"url": "https://github.com/abbassoftware/nodejs-connect-demo/issues" </span> <span>}, </span> <span>"homepage": "https://github.com/abbassoftware/nodejs-connect-demo" </span><span>}</span>
Fail ini sudah mengandungi maklumat mengenai projek itu, tetapi ia tidak mempunyai kebergantungan yang diisytiharkan. Untuk mengisytiharkan Connect sebagai kebergantungan, anda perlu menambah nilai ketergantungan dalam fail "Package.json" anda dan mengemas kini seperti berikut:
<span>{ </span> <span>... </span> <span>"dependencies": { </span> <span>"connect": "3.x" </span> <span>}, </span> <span>... </span><span>}</span>Sebagai alternatif, anda boleh menjalankan arahan:
npm install connect --savePada ketika ini, kita boleh menjalankan arahan NPM berikut untuk memuat turun semua kebergantungan (hanya bersambung dalam kes ini):
$ npm install
Membuat komponen "Hello World" untuk menjawab permintaan
Apabila ketergantungan telah ditentukan, kita boleh bergerak untuk membuat pembekal middleware yang bertindak balas terhadap semua permintaan menggunakan respons Hello Connect. Untuk melakukan itu, buat fail "server.js" dalam direktori projek node.js anda dan tambahkan kod berikut:
<span>var connect = require("connect"); </span><span>var app = connect(); </span> <span>function sayHello(req<span>, res, next</span>) { </span> res<span>.setHeader('Content-Type', 'text/plain'); </span> res<span>.end('Hello Connect'); </span><span>} </span> app <span>.use(sayHello) </span> <span>.listen(3031); </span> <span>console.log("Server is listening");</span>Dalam kod di atas, kita terlebih dahulu memuatkan modul Connect menggunakan fungsi Node.js (), dan kemudian buat pelayan menggunakan nilai pulangan fungsi. Kedua, kami membuat komponen middleware, itu hanyalah fungsi, yang memerlukan tiga parameter: permintaan , tindak balas, dan seterusnya. Seterusnya mewakili pengendali seterusnya dalam rantai. Fungsi Sayhello () menetapkan tajuk dan teks tindak balas dalam objek tindak balas. Selepas itu kami menggunakan komponen middleware ini terima kasih kepada fungsi penggunaan (). Akhirnya, kami membenarkan pelayan untuk mendengar di port 3031. Sekarang, kami boleh menjalankan aplikasi Connect kami menggunakan arahan di bawah:
node serverJika kita menunjukkan penyemak imbas kita ke localhost: 3031, kita harus dapat melihat output seperti berikut:

Objek Permintaan dan Respons
Dalam bahagian ini, kami akan menyelidiki permintaan, tindak balas, dan parameter seterusnya yang kami sebutkan di bahagian sebelumnya. Objek Permintaan memegang butiran mengenai permintaan yang masuk. Beberapa maklumat yang paling penting dalam objek permintaan adalah:
- Kaedah: Mengandungi jenis permintaan: Dapatkan, pos, dan sebagainya.
- url: Mengandungi URL lengkap permintaan. Anda boleh menghuraikan URL ini untuk mendapatkan parameter pertanyaan untuk mendapatkan permintaan.
- Headers: Ia adalah harta yang boleh anda gunakan untuk tajuk permintaan.
Objek tindak balas memegang respons yang akan dihantar kembali. Anda boleh menambah tajuk dan data kepadanya bergantung pada aplikasi anda. Beberapa fungsi penting objek tindak balas adalah:
- Setheader (): Kaedah ini menambah tajuk kepada respons.
- RoveHeader (): Kaedah ini menghilangkan tajuk ke respons.
- tulis (): Ia berguna untuk menulis tindak balas separa kepada objek tindak balas.
- end (): Ini kaedah yang digunakan untuk menandakan akhir respons.
menggunakan pelbagai komponen middleware dalam Connect
Di bahagian terakhir kami telah membuat pembekal middleware yang bertindak balas dengan 'Hello Connect' kepada semua permintaan. Sekarang kami akan menambah satu lagi middleware penapis yang log butir -butir permintaan yang masuk. Kemudian, kami akan lulus permintaan kepada Sayhello () kami yang akan mengembalikan respons. Untuk mencapai tugas lain ini, kami akan mengemas kini fail "Server.js" kami dengan kod berikut:$ npm initDalam kod di atas, kami telah menambah satu lagi komponen middleware menggunakan fungsi LoggingMiddleWare (). Ia log url dan kaedah permintaan, dan menghancurkan URL untuk mencetak nama yang mungkin parameter yang disediakan. Kemudian, ia memanggil fungsi seterusnya () yang akan lulus permintaan kepada pengendali seterusnya. Apabila kami membuat pelayan Connect mendengar port, pertama kami menggunakan LoggingMidDleWare () dan kemudian Sayhello (). Sekarang, jika kita memulakan pelayan Node.js dan jalankan arahan berikut:
<span>{ </span> <span>"name": "nodejs-connect-demo", </span> <span>"version": "1.0.0", </span> <span>"description": "Demo on how to use connect framework for Node.js", </span> <span>"main": "server.js", </span> <span>"scripts": { </span> <span>"test": "echo \"Error: no test specified\" && exit 1" </span> <span>}, </span> <span>"repository": { </span> <span>"type": "git", </span> <span>"url": "https://github.com/abbassoftware/nodejs-connect-demo.git" </span> <span>}, </span> <span>"keywords": [ </span> <span>"connect" </span> <span>], </span> <span>"author": "Abbas", </span> <span>"license": "", </span> <span>"bugs": { </span> <span>"url": "https://github.com/abbassoftware/nodejs-connect-demo/issues" </span> <span>}, </span> <span>"homepage": "https://github.com/abbassoftware/nodejs-connect-demo" </span><span>}</span>
kita akan melihat mesej berikut:

Menambah Pengendali Pengesahan
Perkara seterusnya yang perlu dilakukan ialah menambah pengesahan ke bahagian admin laman web kami menggunakan pengesahan akses asas HTTP. Untuk melakukan itu, kita perlu meneroka bagaimana kita boleh menjalankan pengendali hanya untuk bahagian admin pelayan kami. Fungsi penggunaan Connect () boleh mengambil parameter pertama kerana apa yang sepatutnya menjadi jalan dalam request.url untuk pengendali untuk dipanggil. Oleh itu, jika kita mahu pengendali pengesahan secara eksklusif untuk seksyen admin, kita perlu mengemas kini fail "server.js" seperti berikut:
<span>{ </span> <span>... </span> <span>"dependencies": { </span> <span>"connect": "3.x" </span> <span>}, </span> <span>... </span><span>}</span>
maka kita perlu membuat fail "authdetails.json" dalam direktori yang sama "server.js" dengan kandungan berikut:
$ npm initDalam kod di atas, kami memuatkan fail JSON yang dipanggil "AuthDetails.json" (yang baru dibuat) yang akan merangkumi objek JSON yang mengandungi senarai nama pengguna dan kata laluan pengguna yang diberi kuasa. Kemudian kami menambah satu lagi pengendali sambung yang dipanggil AuthenticateAdMin hanya digunakan untuk bahagian admin laman web. Pengendali yang telah disebutkan sebelumnya memeriksa tajuk kebenaran dan kemudian menguraikan nama pengguna/kata laluan, dan menyemaknya terhadap kandungan fail JSON untuk kebenaran. Sekiranya permintaan itu tidak diberi kuasa, respons yang tidak dibenarkan dengan Kod Respons 401 dihantar kepada pelanggan. Dengan kemas kini ini, jika kami membuat permintaan ke bahagian pentadbir Laman ini, output akan menjadi seperti berikut:

KESIMPULAN
Dalam artikel ini kita telah memperdalam ciri -ciri modul node.js yang kecil dan berkuasa yang dipanggil Connect. Ia dapat membantu anda membina komponen middleware untuk mengendalikan permintaan dengan mudah. Menggunakan plugin Connect dan middleware akan mengurangkan usaha anda dan mengubah aplikasi anda dalam projek yang lebih berstruktur dan boleh digunakan.
Bagaimana dengan anda? Adakah anda pernah mencubanya? Mari kita mulakan perbincangan.
Soalan Lazim (Soalan Lazim) Mengenai Sambung Apakah tujuan utama Connect in Node.js?
Connect adalah kerangka middleware untuk node.js. Ia adalah alat yang mudah, fleksibel, dan berkuasa yang menyediakan koleksi plugin peringkat tinggi yang dikenali sebagai middleware. Komponen middleware ini melakukan pelbagai tugas seperti pembalakan, menyampaikan fail statik, dan pengurusan sesi. Sambung pada dasarnya bertindak sebagai saluran paip yang memproses permintaan dan respons HTTP. Ia membolehkan pemaju menambah fungsi tambahan ke pelayan mereka dengan memasukkan komponen middleware yang berbeza. .js, express.js dibina di atas Connect. Ini bermakna bahawa Express.js merangkumi semua ciri Connect, ditambah ciri -ciri tambahan. Express.js menyediakan set ciri yang lebih mantap untuk aplikasi web dan mudah alih, termasuk enjin templat, mudah dipermudahkan penghalaan, dan antara muka middleware. Anda perlu mempunyai Node.js dan NPM (Pengurus Pakej Node) yang dipasang pada sistem anda. Sebaik sahaja anda mempunyai ini, anda boleh memasang Connect dengan menjalankan arahan berikut di terminal anda: NPM Pasang Sambungkan.
Bagaimana saya menggunakan middleware di Connect? gunakan () kaedah pada aplikasi Connect. Kaedah penggunaan () mengambil fungsi middleware sebagai hujah. Fungsi middleware ini kemudiannya ditambahkan ke stack middleware Connect dan akan dilaksanakan mengikut urutan yang ditambah apabila permintaan dibuat ke pelayan.
Bolehkah saya membuat middleware saya sendiri di Connect?
Ya, anda boleh membuat middleware anda sendiri di Connect. Middleware hanyalah fungsi yang mempunyai akses kepada objek permintaan, objek tindak balas, dan fungsi middleware seterusnya dalam kitaran permintaan permintaan aplikasi. Fungsi ini boleh melakukan apa -apa operasi pada objek permintaan dan tindak balas, dan kemudian hubungi fungsi middleware seterusnya dalam timbunan.
Apakah peranan fungsi seterusnya () dalam middleware Connect?
Fungsi seterusnya () adalah fungsi dalam middleware Connect yang, apabila dipanggil, lulus kawalan ke fungsi middleware seterusnya dalam timbunan. Jika fungsi middleware tidak memanggil seterusnya () di dalamnya, kitaran permintaan-tindak balas akan dihentikan. Ia tidak akan diteruskan ke mana-mana pengendali middleware atau laluan lain.
Bolehkah saya menggunakan Connect dengan kerangka Node.js lain?
Ya, Connect direka untuk berfungsi dengan lancar dengan kebanyakan kerangka web Node.js. Malah, banyak kerangka popular seperti Express.js dibina di atas Connect. Ini bermakna anda boleh menggunakan middleware Connect dalam rangka kerja ini.
Bagaimana saya boleh menyampaikan fail statik menggunakan Connect? Anda boleh menggunakan fungsi middleware ini untuk menyampaikan fail dari direktori yang ditentukan. Sebagai contoh, untuk menyampaikan fail statik dari direktori yang dinamakan 'awam', anda akan menggunakan kod berikut: app.use (connect.static ('public')). ??>
Pada masa penulisan, Connect tidak diselenggarakan dan dikemas kini secara aktif. Kemas kini terakhir dibuat beberapa tahun yang lalu. Walau bagaimanapun, ia masih digunakan secara meluas dan fungsinya stabil. Untuk rangka kerja middleware yang lebih aktif, anda mungkin mempertimbangkan menggunakan Express.js, yang dibina di atas Connect dan termasuk ciri -ciri tambahan.
Atas ialah kandungan terperinci Bermula dengan Connect. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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

Java dan JavaScript adalah bahasa pengaturcaraan yang berbeza, masing -masing sesuai untuk senario aplikasi yang berbeza. Java digunakan untuk pembangunan aplikasi perusahaan dan mudah alih yang besar, sementara JavaScript digunakan terutamanya untuk pembangunan laman web.

Titik berikut harus diperhatikan apabila tarikh pemprosesan dan masa di JavaScript: 1. Terdapat banyak cara untuk membuat objek tarikh. Adalah disyorkan untuk menggunakan rentetan format ISO untuk memastikan keserasian; 2. Dapatkan dan tetapkan maklumat masa boleh diperoleh dan tetapkan kaedah, dan ambil perhatian bahawa bulan bermula dari 0; 3. Tarikh pemformatan secara manual memerlukan rentetan, dan perpustakaan pihak ketiga juga boleh digunakan; 4. Adalah disyorkan untuk menggunakan perpustakaan yang menyokong zon masa, seperti Luxon. Menguasai perkara -perkara utama ini secara berkesan dapat mengelakkan kesilapan yang sama.

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

JavaScriptispreferredforwebdevelopment, whersjavaisbetterforlarge-scalebackendsystemsandandroidapps.1) javascriptexcelsinceleatinginteractiveWebexperienceswithitsdynamicnatureanddommanipulation.2) javaoffersstrongyblectionandobjection

Penangkapan dan gelembung acara adalah dua peringkat penyebaran acara di Dom. Tangkap adalah dari lapisan atas ke elemen sasaran, dan gelembung adalah dari elemen sasaran ke lapisan atas. 1. Penangkapan acara dilaksanakan dengan menetapkan parameter useCapture addeventlistener kepada benar; 2. Bubble acara adalah tingkah laku lalai, useCapture ditetapkan kepada palsu atau ditinggalkan; 3. Penyebaran acara boleh digunakan untuk mencegah penyebaran acara; 4. Acara menggelegak menyokong delegasi acara untuk meningkatkan kecekapan pemprosesan kandungan dinamik; 5. Penangkapan boleh digunakan untuk memintas peristiwa terlebih dahulu, seperti pemprosesan pembalakan atau ralat. Memahami kedua -dua fasa ini membantu mengawal masa dan bagaimana JavaScript bertindak balas terhadap operasi pengguna.

JavascripthassevenfundamentalDatypes: nombor, rentetan, boolean, undefined, null, objek, andsymbol.1) numberuseadouble-precisionformat, bergunaforwidevaluangesbutbecautiouswithfloating-pointarithmetic.2)

Jika aplikasi JavaScript memuat perlahan -lahan dan mempunyai prestasi yang buruk, masalahnya adalah bahawa muatan terlalu besar. Penyelesaian termasuk: 1. Penggunaan kod pemisahan (codesplitting), memecah bundle besar ke dalam pelbagai fail kecil melalui react.lazy () atau membina alat, dan memuatkannya seperti yang diperlukan untuk mengurangkan muat turun pertama; 2. Keluarkan kod yang tidak digunakan (treeshaking), gunakan mekanisme modul ES6 untuk membersihkan "kod mati" untuk memastikan perpustakaan yang diperkenalkan menyokong ciri ini; 3. Memampatkan dan menggabungkan fail sumber, membolehkan GZIP/Brotli dan Terser memampatkan JS, menggabungkan fail dan mengoptimumkan sumber statik; 4. Gantikan kebergantungan tugas berat dan pilih perpustakaan ringan seperti hari.js dan ambil

Perbezaan utama antara modul ES dan Commonjs adalah kaedah pemuatan dan senario penggunaan. 1.Commonjs dimuatkan secara serentak, sesuai untuk persekitaran sisi pelayan Node.js; 2. Modul tidak disengajakan, sesuai untuk persekitaran rangkaian seperti penyemak imbas; 3. Sintaks, modul ES menggunakan import/eksport dan mesti terletak di skop peringkat atas, manakala penggunaan CommonJS memerlukan/modul.exports, yang boleh dipanggil secara dinamik pada runtime; 4.Commonjs digunakan secara meluas dalam versi lama node.js dan perpustakaan yang bergantung kepadanya seperti Express, manakala modul ES sesuai untuk kerangka depan moden dan nod.jsv14; 5. Walaupun ia boleh dicampur, ia boleh menyebabkan masalah dengan mudah.
