ตัวอย่าง Nodejs Express Rest Api ตอนที่ 4




ในขั้นตอนนี้จะทำการสร้างไฟล์ routes.js ไว้ใช้สำหรับผูก url กับฟังก์ชันในไฟล์ todo.js ที่ถูกสร้างไว้ก่อนหน้านี้

  ลักษณะจะเป็นการผูกฟังก์ชันกับ url แบบตรงไปตรงมาเลยตามตัวอย่างด้านล่างต่อไปนี้



const Todo = require('./todo');

let todo = new Todo();

module.exports = function(app) {
    app.get('/api/v1/getAllTodo', async (req, res) => {
        try {
            let result = await todo.getAllTodo();
            res.status(200).send({result: result});
        } catch (err) {
            res.status(500).send({error: err.toString()});
        }
    });

    app.get('/api/v1/getTodo', async (req, res) => {
        try {
            let result = await todo.getTodo(req.query);
            res.status(200).send({result: result});
        } catch (err) {
            res.status(500).send({error: err.toString()});
        }
    });

    app.post('/api/v1/addTodo', async (req, res) => {
        try {
            let result = await todo.addTodo(req.body);
            res.status(200).send({result: result});
        } catch (err) {
            res.status(500).send({error: err.toString()});
        }
    });

    app.post('/api/v1/updateTodo', async (req, res) => {
        try {
            let result = await todo.updateTodo(req.body);
            res.status(200).send({result: result});
        } catch (err) {
            res.status(500).send({error: err.toString()});
        }
    });

    app.post('/api/v1/deleteTodo', async (req, res) => {
        try {
            let result = await todo.deleteTodo(req.body);
            res.status(200).send({result: result});
        } catch (err) {
            res.status(500).send({error: err.toString()});
        }
    });
   
}



จากโค้ดตัวอย่างข้างบนจะเห็นได้ว่ามีการใช้ method อยู่ 2 แบบนั้นคือ app.get และ app.post มีวิธีเลือกว่าเ

มื่อไหร่ใช้ get เมื่อไหร่ใช้ post นั่นคือการเป็นการเรียกใช้ url เพื่ออ่านค่าข้อมูลหรือเพื่อการทำอะไรก็ตามที่ไม่ส่งผล

ต่อการเปลี่ยนแปลงข้อมูลใน database ให้ใช้ get ส่วนถ้าเขียนข้อมูล แก้ไขข้อมูลหรือลบข้อมูล โดยเป็นการดำเนิน

การที่ส่งผลให้ข้อมูลใน database มีการเปลี่ยนแปลงให้ใช้ post โดยจริงๆแล้วมี method อยู่มากกว่านี้

เช่น put, patch, delete ก็เลือกใช้ได้ตามความเหมาะสม

ส่วนวิธีส่งข้อมูลมายัง url ของ get กับ post จะแตกต่างกัน  ของ get จะเป็นการส่งค่า parameter เข้ามา

เช่น http://some_ip:post?a=10 แบบนี้คือส่งค่า a = 10 เข้ามา  เวลารับข้อมูลให้ดูตัวอย่างโค้ดด้านบนแบบ get

จะรับข้อมูลโดยใช้คำสั่ง req.query เพื่อรับค่า a = 10 นี้เข้ามา    ส่วนอีกแบบหนึ่งคือแบบ post จะส่งข้อมูลผ่าน

url ด้วย body อาจส่งในรูป json หรือแบบ form หรือแบบอื่นๆก็ได้  เวลารับข้อมูลแบบ post ให้ใช้คำสั่ง req.body

เมื่อทำส่วนนี้เสร็จแล้วให้ลบ comment โด้ดด้านล่างนี้ในไฟล์ index.js ที่สร้างไว้ตอนแรกๆออกเพื่อเปิด

การใช้งาน api ที่เราสร้างไว้ทั้งหมดตั้งแต่แรก



require('./api_v1/todo/routes')(app);


เพียงเท่านี้ todo api ก็สร้างเสร็จเป็นที่เรียบร้อยขั้นต่อไปจะเป็นการทดสอบใช้งาน api ด้วย postman อ่านต่อได้ที่

บทความทดสอบ api ด้วย postman

 


ความคิดเห็น