នេះគឺជា 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}`); })

0 Comments