⊗jsrxPmSDIM 37 of 57 menu

การติดตั้ง msw สำหรับการทำงานกับฝั่งเซิร์ฟเวอร์ใน Redux

ในบทเรียนที่ผ่านมาเราได้ทำการเปลี่ยนแปลงเพิ่มเติมหลายอย่างในแอปพลิเคชันของเรา ตอนนี้เราจำเป็นต้องมาจัดการกับเซิร์ฟเวอร์ที่แอปพลิเคชันของเราจะแลกเปลี่ยนข้อมูลด้วย

เราจะไม่มีเซิร์ฟเวอร์จริง ดังนั้นเราจะจำลองการทำงานกับเซิร์ฟเวอร์โดยใช้เครื่องมือที่ยอดเยี่ยมอย่าง Mock Service Worker Mock Service Worker (MSW) เป็นเครื่องมือสำหรับจำลอง API ซึ่งใช้ API มาตรฐานของ Service Worker ที่ออกแบบมาเพื่อดักจับคำขอในระดับเครือข่าย MSW จะสร้างการตอบกลับแบบจำลอง (responses) ต่อคำขอ (requests) ของเรา ยิ่งไปกว่านั้น ตามที่ผู้พัฒนาระบุ เครื่องมือนี้มีประสิทธิภาพและยืดหยุ่นมาก หลังจากการดีบั๊กกับม็อก (ซึ่งไม่จำเป็นต้องสร้างอะไรพิเศษในแอปพลิเคชัน) แอปพลิเคชันสามารถเริ่มทำงานกับเซิร์ฟเวอร์ภายนอกจริงได้เลย เอกสารประกอบค่อนข้างกว้างขวาง และหากคุณสนใจใน MSW คุณสามารถอ่านได้จากเว็บไซต์ทางการ

มาดูการติดตั้ง msw กันดีกว่า สำหรับการนี้ ให้เปิดโปรเจกต์สินค้าของเราและในเทอร์มินัลป้อน:

npm install msw --save-dev

สำหรับการทำงานของ msw เรายังต้องสร้างและคัดลอกไฟล์ mockServiceWorker.js ไปยังไดเรกทอรีสาธารณะที่ไหนสักแห่ง มักจะเป็นโฟลเดอร์ public เรามี โฟลเดอร์ public ว่างอยู่ มาคัดลอก มันไปที่นั่นกัน สำหรับการนี้ ให้รันในเทอร์มินัล คำสั่งและจากนั้นยอมรับการใช้ public:

npx msw init public

ตอนนี้มาดูใน public ตรงนั้นควรจะปรากฏ สคริปต์ที่ถูกสร้างขึ้น mockServiceWorker.js ตอนนี้ มาเริ่มแอปพลิเคชันสินค้าของเราและในแถบที่อยู่ เบราว์เซอร์ป้อน http://localhost:5173/mockServiceWorker.js (เนื่องจากแอปพลิเคชันของเราทำงานบนพอร์ต 5173) เห็นไหมในหน้าต่างเบราว์เซอร์แสดงเนื้อหา ของไฟล์ mockServiceWorker.js? นั่นหมายความว่าดีมาก, ไปต่อกันเลย

ถัดไป สร้างโฟลเดอร์ในโฟลเดอร์ src api และในนั้นสร้างไฟล์ server.js ซึ่ง เราจะเขียนโค้ดเซิร์ฟเวอร์ ตอนนี้เปิด server.js และนำเข้าไปยังนั้นฟังก์ชัน setupWorker จากไลบรารี msw ที่ติดตั้งแล้ว:

import { setupWorker } from 'msw/browser'

ด้านล่างในไฟล์ สร้างตัวแปร worker และส่งออกมัน:

export const worker = setupWorker()

และตอนนี้มาเปิดไฟล์ main.jsx และนำเข้า worker ของเราไปยังนั้น:

import { worker } from './api/server'

ตอนนี้มาต่อมันเข้ากับแอปพลิเคชันของเรา สำหรับ การนี้ โค้ดที่เราใช้สร้างรูท ของแอปพลิเคชัน React ของเรา เราจะห่อมันในฟังก์ชัน เรียกมันว่า main และเพิ่มเข้าไปในนั้นบรรทัดแรกฟังก์ชัน เริ่มต้นสำหรับ worker แน่นอนอย่าลืม เรียก main ด้วย โค้ดเต็มหลังจากทั้งหมด บรรทัดด้วยการนำเข้าตอนนี้จะมีลักษณะ ดังนี้:

async function main() { await worker.start({ onUnhandledRequest: 'bypass' }) ReactDOM.createRoot(document.getElementById('root')).render( <React.StrictMode> <Provider store={store}> <App /> </Provider> </React.StrictMode> ) } main()

ตอนนี้เราแน่ใจแล้วว่าแอปพลิเคชันของเรา จะไม่เริ่มทำงานก่อน (และส่งคำขอ ;) ) กว่า worker จะเริ่มทำงาน

มาเริ่มแอปพลิเคชันของเราและเปิด เบราว์เซอร์คอนโซลสำหรับนักพัฒนากัน หาก คุณเห็นในนั้นข้อความ '[MSW] Mocking enabled.' แสดงว่าคุณเยี่ยมมากและติดตั้งทุกอย่างถูกต้อง!!!

เปิดแอปพลิเคชันนักเรียนของคุณ หลังจากศึกษาเนื้อหาของบทเรียนนี้แล้ว ให้ติดตั้ง Mock Service Worker สำหรับ แอปพลิเคชันของคุณ

สร้างไฟล์ server.js และในนั้นสร้าง worker ต่อ worker เข้ากับแอปพลิเคชันใน main.js ดังที่แสดงในบทเรียน ตรวจสอบให้แน่ใจ ว่าทุกอย่างทำงานได้

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ