នេះគឺជា 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