ก่อนหน้านี้ฉันเข้าร่วมกลุ่มสมุดบันทึกการศึกษาเพื่อแบ่งปันผลการเรียนรู้ของฉันผ่านบันทึกการศึกษา ส่งที่นี่ด้วย
เมื่อเราเขียนเว็บเราจะต้องใช้คุกกี้อย่างหลีกเลี่ยงไม่ได้ เนื่องจาก Node.js มีเฟรมเวิร์กเว็บด่วนเราจึงสามารถสร้างเว็บไซต์ได้อย่างง่ายดาย เมื่อใช้ Express ปลั๊กอินคุกกี้มักจะใช้ วันนี้เราจะวิเคราะห์ปลั๊กอินนี้
ปลั๊กอินนี้มักจะใช้เป็นมิดเดิลแวร์, app.use (cookieparser ()) เพื่อให้สามารถจัดการกับคุกกี้ที่ร้องขอทุกตัว
ตัดสินจากชื่อนี่เป็นเครื่องมือในการอธิบายคุกกี้ req.cookies สามารถดึงคุกกี้ที่ผ่านและแปลงเป็นวัตถุ ถัดไปให้ดำดิ่งลงในซอร์สโค้ด
ก่อนอื่นมาดู index.js
รหัสคัดลอกรหัสมีดังนี้: var cookie = ต้องการ ('คุกกี้');
var parse = ต้องการ ('./ lib/parse');
มีการอ้างอิง 2 รายการที่นี่หนึ่งคือคุกกี้และอื่น ๆ เป็นฟังก์ชั่นหลักของคุกกี้-parser โมดูลคุกกี้มีเพียง 2 วิธีเท่านั้นที่เป็นอนุกรมและอีกวิธีหนึ่งคือการแยกวิเคราะห์
วิธีการอนุกรมได้รับคีย์และ Val และทำให้เป็นอนุกรม
การคัดลอกรหัสมีดังนี้: var hdr = cookie.serialize ('foo', 'bar'); // hdr = 'foo = bar';
วิธี Paser แปลงสตริงเป็นวัตถุ
การคัดลอกรหัสมีดังนี้: var cookies = cookie.parse ('foo = bar; cat = meow; dog = ruff'); // cookies = {foo: 'bar', cat: 'meow', dog: 'ruff'};
มาดูสิ่งต่อไปนี้ซึ่งเป็นฟังก์ชั่นหลัก cookiepaser ของ Cookie-Parser
การคัดลอกรหัสมีดังนี้: exports = module.exports = function cookieparser (ความลับ, ตัวเลือก) {
return function cookieparser (req, res, ถัดไป) {// รับ req, res -object จากคำขอ
ถ้า (req.cookies) กลับ next (); // หากมีวัตถุคุกกี้อยู่แล้วให้ออกจากมิดเดิลแวร์และทำงานต่อไป
คุกกี้ var = req.headers.cookie; // รับคุกกี้จากส่วนหัว
req.secret = ความลับ; // หากมีความลับผ่านเข้ามาตั้งค่าเป็นวัตถุ REQ
req.cookies = object.create (null); // สร้างวัตถุเปล่าเพื่อ req.cookies
req.signedCookies = object.create (null); // สร้างวัตถุเปล่าเพื่อ req.signedcookies
// ไม่มีคุกกี้
ถ้า (! คุกกี้) {// ถ้าคุณไม่ได้รับคุกกี้จากส่วนหัว
return next (); // ออกจากมิดเดิลแวร์และทำงานต่อไป
-
req.cookies = cookie.parse (คุกกี้ตัวเลือก); // โทรแยกคุกกี้เพื่อแปลงสตริงคุกกี้เป็นวัตถุคุกกี้
// การแยกวิเคราะห์คุกกี้ที่ลงนาม
ถ้า (ความลับ) {// ถ้าตั้งค่าความลับให้ใช้สองวิธีของการแยกวิเคราะห์เพื่อลงนามคุกกี้
req.signedCookies = parse.signedCookies (req.cookies, Secret);
req.signedCookies = parse.jsoncookies (req.signedCookies);
-
// Parse Json คุกกี้
req.cookies = parse.jsoncookies (req.cookies); // แปลงวัตถุ req.cookies
ต่อไป();
-
-
หลังจากอ่านฟังก์ชั่นหลักนี้เรายังคงสับสนเล็กน้อยซึ่งเป็นไฟล์หลัก parse.js มาดูกันว่าไฟล์นี้คืออะไรในครั้งต่อไป
ข้างต้นเป็นเนื้อหาทั้งหมดของมิดเดิลแวร์คุกกี้-Parser Node.js ฉันหวังว่ามันจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น