Deno增删查改(CRUD)应用
作者:互联网
一起来完成以下步骤:
- Window上安装deno
- 运行第一个Hello World 应用
- 增加Router功能
- 新增实体类Employee
- 对实体类进行CRUD
#main.ts
import { Application } from "https://deno.land/x/oak/mod.ts";
import router from "./router.ts";
const app = new Application();
app.use(router.routes());
app.use(router.allowedMethods());
await app.listen({ port: 8000 });
#router.ts
import { Router,Context } from "https://deno.land/x/oak/mod.ts";
import { getEmployees,getEmployee,addEmployee,updateEmployee,deleteEmployee } from "./employees.ts";
const router = new Router();
router.get("/hello",(context : Context) =>{
context.response.body="Hello World";
});
router.get("/employees",getEmployees);
router.get("/employee/:id",getEmployee);
router.post("/employee",addEmployee);
router.put("/employee",updateEmployee);
router.delete("/employee/:id",deleteEmployee);
export default router;
#employees.ts
import { Employee } from "./types.ts";
import ShortUniqueId from 'https://cdn.jsdelivr.net/npm/short-unique-id@latest/short_uuid/mod.ts';
let employees :Employee [] =[
{
id:"1",
name:"michael",
age:24
},
{
id:"2",
name:"alex",
age:25
},
{
id:"3",
name:"deny",
age:26
}
];
//获取所有员工
const getEmployees = ({response}:{response:any}) =>{
response.body = {
success : true,
data : employees
}
}
//获取一个员工
const getEmployee = ({params,response}:{params:{id:string},response:any}) =>{
const hadEmployee = employees.find(employee => employee.id === params.id);
if(hadEmployee){
response.body={
success:true,
data:hadEmployee
}
}else{
response.body={
success:false,
data:"No employee found"
}
}
}
//新增
const addEmployee = async ({ request,response }:{request:any,response:any}) =>{
const body = await request.body();
const newEmployee = body.value;
const uid = new ShortUniqueId();
newEmployee.id = uid();
employees.push(newEmployee);
response.body = {
success : true,
msg :newEmployee
}
}
//修改
const updateEmployee = async ( {request,response }:{request:any,response:any}) =>{
const body = await request.body();
const updateEmployee = body.value;
if(updateEmployee.id){
const index = employees.findIndex(e=>e.id === updateEmployee.id);
if(index !== -1){ //如果员工存在
console.log("idnex: "+ index);
employees[index] = updateEmployee;
response.body = {
success : true,
data :updateEmployee
}
}else{
response.body = {
success : false,
data :"No Employee found"
}
}
}
}
//删除
const deleteEmployee = ({params,response}:{params:{id:string}, response:any}) =>{
employees= employees.filter(e => e.id ! === params.id);
response.body = {
success : true,
msg:"Employee "+ params.id + " was deleted"
}
}
export { getEmployees,getEmployee,addEmployee,updateEmployee,deleteEmployee}
#types.ts
export interface Employee{
id:string;
name:string;
age:number;
}
完
标签:body,const,employees,CRUD,response,Deno,router,查改,id 来源: https://www.cnblogs.com/JavaWeiBianCheng/p/13033088.html