node js API

នេះគឺជា basic អំពីរៀនធ្វើ API តាមរយៈ node js តាមរយៈ method GET,POST,PUT និង DELETE។ មុុនដំបូងយើងសូម install package សម្រាប់ project របស់យើងមានដូចជា៖

npm init -y
npm i express

បន្ទាប់ពីយើង install វារួចហើយ យើងបង្កើត module និង host ឲ្យវា

const express = require("express")
const app = express()

// Home page
app.get("/",(req, res)=>{
    res.send("<h1>Welcome to learn API with node JS!")
})


// local port
const port = process.env.PORT || 3000;
app.listen(port, ()=>{
    console.log(`Server running port ${port}`);
})
បង្កើត array ដើម្បីបង្ហាញទិន្ន័យ

យើងបង្កើត array មួយសម្រាប់សិក្សាវា

const express = require("express")
const app = express()


const arr = [
    {"id":1, "name":"Ros Dul"},
    {"id":2, "name": "Seng"},
    {"id":3, "name":"Dinna"}]

// Home page
app.get("/",(req, res)=>{
    res.send("<h1>Welcome to learn API with node JS!")
})

// Page get for show array
app.get("/get",(req, res)=>{
    res.send(arr)
})


// local port
const port = process.env.PORT || 3000;
app.listen(port, ()=>{
    console.log(`Server running port ${port}`);
})
សិក្សាអំពី params

អ្វីទៅ params គឺជាតំលៃ dynamic ដែលទាញចេញពី URL path ដែលប្រើជាមួយ parameter request

const express = require("express")
const app = express()


const arr = [
    {"id":1, "name":"Ros Dul"},
    {"id":2, "name": "Seng"},
    {"id":3, "name":"Dinna"}]

// Home page
app.get("/",(req, res)=>{
    res.send("<h1>Welcome to learn API with node JS!")
})

// Page get for show array
app.get("/get/:id",(req, res)=>{
    res.send(req.params.id)
})


// local port
const port = process.env.PORT || 3000;
app.listen(port, ()=>{
    console.log(`Server running port ${port}`);
})

Filter ទិន្ន័យ

យើងអាច filter ទិន្ន័យតាមរយ params ពី array របស់យើងតាមរយៈ id ប្រសិនបើទិន្ន័យរបស់យើងមាន id ដូចគ្នាច្រើន រួចហើយយើងចង់បង្ហាញតែទិន្ន័យនោះ

const express = require("express")
const app = express()


const arr = [
    {"id":1, "name":"Ros Dul"},
    {"id":2, "name": "Seng"},
    {"id":3, "name":"Dinna"}]

// Home page
app.get("/",(req, res)=>{
    res.send("<h1>Welcome to learn API with node JS!")
})

app.get("/filter/:id",(req,res)=>{
    const myData = arr.filter(d => d.id === parseInt(req.params.id))
    res.send(myData)
})


// local port
const port = process.env.PORT || 3000;
app.listen(port, ()=>{
    console.log(`Server running port ${port}`);
})

find ទិន្ន័យ

find ទិន្ន័យគឺខុសពី filter ។ find ប្រសិនទិន្ន័យរបស់យើងមាន id ដូចគ្នាច្រើននោះវាចេញតែមួយដែលនៅខាងលើគេ

const express = require("express")
const app = express()


const arr = [
    {"id":1, "name":"Ros Dul"},
    {"id":2, "name": "Seng"},
    {"id":3, "name":"Dinna"}]

// Home page
app.get("/",(req, res)=>{
    res.send("<h1>Welcome to learn API with node JS!")
})

app.get("/get/:id",(req,res)=>{
    const myData = arr.find(d => d.id === parseInt(req.params.id))
    //400 Bad request
    if(!myData) res.status(400).send("Not found ID!") 
    res.send(myData)
})


// local port
const port = process.env.PORT || 3000;
app.listen(port, ()=>{
    console.log(`Server running port ${port}`);
})

ប្រសិន find id ដែលគ្មាននៅក្នុង array

method POST

method POST គឹសម្រាប់បញ្ចូលទិន្ន័យបន្ថែមទៅក្នុង array ។ ហើយការបញ្ចូលទិន្ន័យគឺយើងបញ្ចូលតាមរយៈ body។

ដើម្បីបញ្ចូលទិន្ន័យតាមរយៈ body បានយើងត្រូវ inplement app ពី express ទៅ json

app.use(express.json())
const express = require("express")
const app = express()

app.use(express.json())


const arr = [
    {"id":1, "name":"Ros Dul"},
    {"id":2, "name": "Seng"},
    {"id":3, "name":"Dinna"}]

// Home page
app.get("/get",(req, res)=>{
    res.send(arr)
});

// Insert data by body
app.post("/post",(req,res)=>{
    if(!req.body.name || req.body.name.length < 2){
        res.status(400).send("Name is required and and should minimum 3 charater!");
        return
    }
    const myArr = {
        id: arr.length + 1,
        name: req.body.name
    }
    arr.push(myArr)
    res.send(myArr)
});


// local port
const port = process.env.PORT || 3000;
app.listen(port, ()=>{
    console.log(`Server running port ${port}`);
})

សូមប្រើ Postman ដើម្បី test បញ្ចូលទិន្ន័យ

ប្រសិនជាយើងបញ្ចូលទិន្ន័យមិនត្រូវលក្ខណ

នេះគឺយើងប្រើ raw ដើម្បីបង្កើតវាជា validate ក្នុងការសិក្សាលក្ខណ ប៉ុន្តែក៏អាចប្រើ library សម្រើជំនួសវា

Joi

Joi គឺជា package សម្រាប់បង្កើតលក្ខណនៃ object ដែលយើងប្រើជំនួសកូដខាងលើ។ ដោយយើង install វា

npm i joi

បន្ទាប់ពីយើង install រួចហើយ យើងត្រូវបង្កើត module នៅខាង module express

const Joi = require("joi")
const Joi = require("joi")
const express = require("express")
const app = express()

app.use(express.json())


const arr = [
    {"id":1, "name":"Ros Dul"},
    {"id":2, "name": "Seng"},
    {"id":3, "name":"Dinna"}]

// Home page
app.get("/get",(req, res)=>{
    res.send(arr)
});

// Insert data by body
app.post("/post",(req,res)=>{
   // create object name from joi
   const schema = Joi.object({
    name: Joi.string().min(2).required()
    });
    //Validate
const result = schema.validate(req.body)
console.log(result) 

});


// local port
const port = process.env.PORT || 3000;
app.listen(port, ()=>{
    console.log(`Server running port ${port}`);
})

យើងសិក្សាលក្ខណ

const Joi = require("joi")
const express = require("express")
const app = express()

app.use(express.json())


const arr = [
    { "id": 1, "name": "Ros Dul" },
    { "id": 2, "name": "Seng" },
    { "id": 3, "name": "Dinna" }]

// Home page
app.get("/get", (req, res) => {
    res.send(arr)
});

// Insert data by body
app.post("/post", (req, res) => {
    // create object name from joi
    const schema = Joi.object({
        name: Joi.string().min(2).required()
    });
    //Validate
    const result = schema.validate(req.body)
    if (result.error) {
        res.status(400).send(result.error.details[0].message)
        return
    }
    const myArr = {
        id: arr.length + 1,
        name: req.body.name
    }
    arr.push(myArr)
    res.send(myArr)

});


// local port
const port = process.env.PORT || 3000;
app.listen(port, () => {
    console.log(`Server running port ${port}`);
})
Update ទិន្ន័យ

យើង udpate ទិន្ន័យរបស់យើងតាមរយៈ id

const Joi = require("joi")
const express = require("express")
const app = express()

app.use(express.json())


const arr = [
    { "id": 1, "name": "Ros Dul" },
    { "id": 2, "name": "Seng" },
    { "id": 3, "name": "Dinna" }]

// Home page
app.get("/get", (req, res) => {
    res.send(arr)
});

// Updata Data
app.put("/update/:id",(req,res)=>{
    // Look up the array (if not exiting ,return 400)
    const myData =  arr.find(d => d.id === parseInt(req.params.id))
   if(!myData) res.status(404).send("The get not have ID!")

    //Validate (if validate, return 400 Bad request)
    const schema = Joi.object({
        name: Joi.string().min(2).required()
    });
    const result = schema.validate(req.body)
    if(result.error){
        res.status(400).send(result.error.details[0].message)
        return
    }
    //Upadate array  (Return the update array)
    myData.name = req.body.name
    res.send(myData)
})

// local port
const port = process.env.PORT || 3000;
app.listen(port, () => {
    console.log(`Server running port ${port}`);
})

បំលែង validate to function

const Joi = require("joi")
const express = require("express")
const app = express()

app.use(express.json())


const arr = [
    { "id": 1, "name": "Ros Dul" },
    { "id": 2, "name": "Seng" },
    { "id": 3, "name": "Dinna" }]

// Home page
app.get("/get", (req, res) => {
    res.send(arr)
});

// Updata Data
app.put("/update/:id",(req,res)=>{
    // Look up the array (if not exiting ,return 400)
    const myData =  arr.find(d => d.id === parseInt(req.params.id))
   if(!myData) res.status(404).send("The get not have ID!")

    //Validate (if validate, return 400 Bad request)
     //const result = validateArr(req.body) //It was replaced by error
     const { error } = validateArr(req.body)//result.error
    if(error){
        res.status(400).send(result.error.details[0].message)
        return
    }

    //Upadate array  (Return the update array)
    myData.name = req.body.name
    res.send(myData)
});

function validateArr(myBody){
    const schema = Joi.object({
        name: Joi.string().min(2).required()
    });
    return schema.validate(myBody)
}


// local port
const port = process.env.PORT || 3000;
app.listen(port, () => {
    console.log(`Server running port ${port}`);
})
Delete

នេះវិធីលុបទិន្ន័យតាមរយៈ id ដោយប្រើ method delete

const Joi = require("joi")
const express = require("express")
const app = express()

app.use(express.json())

const arr = [
    { "id": 1, "name": "Ros Dul" },
    { "id": 2, "name": "Seng" },
    { "id": 3, "name": "Dinna" }]

// Home page
app.get("/get", (req, res) => {
    res.send(arr)
});

// Delete data by index
app.delete("/deleteapi/:id",(req,res)=>{
    //Look up array (If not existing return 404)
    const myData = arr.find(d => d.id === parseInt(req.params.id))
    if(!myData) res.status(404).send("The get not have ID!")

    // Delete index in array
    const index = arr.indexOf(myData);
    arr.splice(index,1)

    // Return the same array
    res.send(myData)
});

// local port
const port = process.env.PORT || 3000;
app.listen(port, () => {
    console.log(`Server running port ${port}`);
})

Post a Comment

0 Comments