หลังจากที่ได้ลง JSON-Server ไปแล้วใน Blog ตอนก่อนครับ หลังจากที่ลอง Service Task บน BPMN แล้วพบว่ามันไม่ส่งข้อมูลไป คราวนี้ผมเลยต้องมาไล่ดู Request ที่ส่งไปที่ JSON-Server มันส่งไปจริง หรือป่าว และส่งอะไรไปบ้างครับ โดยสิ่งที่มีก่อนครับ
- Node.js
- Editor อะไรก็ได้ครับ เพราะ เราเขียน JavaScript เรียกใช้งาน JSON-Server ครอบอีกทีนึงก่อนครับ
สำหรับขั้นตอนมาลุยไปพร้อมๆกันเลยครับฃ
- สร้าง Project สำหรับ Node ด้วยคำสั่ง npm init -y ซึ่งได้ผลลัพธ์เป็น package.json ที่ทำหน้าที่เก็บข้อมูลของ Project และ Package ที่เกี่ยวข้อง
- ลง JSON-Server
- ถ้าไม่มีใช้คำสั่ง npm install json-server --save ติดตั้งที่ Local เลยครับ
- ถ้าใน Global แล้วใช้คำสั่ง Link ครับ
- ทดสอบ Code ดังนี้ครับ โดยใช้ Lib ของ bodyParser ซึ่งจะเป็น dependency ที่ JSON-Server Require อยู่แล้วครับ ไม่ต้อง Download เพิ่มเติมอะไรครับ
- โดย Code ที่เราทำ มีการเรียกใช้ bodyParser แล้วทำการพ่นสิ่งที่ซ่อนใน request (req) ผ่าน console.log() ใน req.body ครับ
- และ ถ้าเป็น Method POST ให้เพิ่มเวลาที่สร้างไปใน Property "CreateAt"
- ส่วนของ Code ที่ทำตรงนี้ อยู่ด้านล่างครับ
server.use(jsonServer.bodyParser) server.use((req, res, next) => { if (req.method === 'POST') { req.body.createdAt = Date.now() } //Get Request Body console.log(req.body) // Continue to JSON Server router next() })
- Code สมบูรณ์ทั้งหมด ไฟล์ middleware.js ครับThis file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
const jsonServer = require('json-server') const server = jsonServer.create() const router = jsonServer.router('db.json') const middlewares = jsonServer.defaults() console.log("I am PingkungA") // Set default middlewares (logger, static, cors and no-cache) server.use(middlewares) // Add custom routes before JSON Server router server.get('/echo', (req, res) => { res.jsonp(req.query) }) // To handle POST, PUT and PATCH you need to use a body-parser // You can use the one used by JSON Server server.use(jsonServer.bodyParser) server.use((req, res, next) => { if (req.method === 'POST') { req.body.createdAt = Date.now() } //Get Request Body console.log(req.body) // Continue to JSON Server router next() }) // Use default router server.use(router) server.listen(3000, () => { console.log('JSON Server is running') }) - ทดสอบ Run ครับ สิ่งที่ต้องมี
- ไฟล์ db.json << ใน Code Require ครับ ถ้าไม่มีมันสร้างไฟล์เปล่ามาให้ครับ สำหรับผมก็ใช้จาก Blog ตอนที่แล้วครับ อิอิ
- Run ด้วยคำสั่ง node middleware.js ครับ
- ลองยิง Request เข้ามาครับ
- ลองจาก Postman
- ลองจาก BPMN << ปัญหาที่ทำให้ต้องเกิด Blog นี้เลยครับ
- มาดูผลลัพธ์ที่ Console นะครับ สิ่งที่ Highlight เกิดจากคำสั่ง Console.log ที่เราได้ Customize ไปครับ
- ลองจาก Postman
หลังจากเขียน Blog นี้เสร็จคงต้องกลับไปลองดู Script ที่เขียนแล้วว่ามันผิดตรงไหนครับ T___T
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.