deno如何连接mysql_Deno MySQL 增删查改接口

视频演示

我们一起来完成以下步骤:使用之前工程的代码

创建数据库脚本

创建数据库连接

新增员工model

创建员工仓库类repositories

创建员工services类

添加增删查改代码

#controllers/employeeController.ts

import { Context } from "https://deno.land/x/oak/mod.ts";

import { Employee } from "../models/employee.ts";

import employeeService from "../services/employeeService.ts";

const { cwd } = Deno;

class Controller {

static async hello(ctx: any){

//cwd获取当前工程目录

//注意 ' !== `

ctx.render(`${cwd()}/views/index.ejs`,{

title:"Testing",

data:{name:" Deepincoding"}

});

}

static async save(ctx: Context){

const bodyValue = await ctx.request.body();

let employee:Employee={

id: 0,

name: bodyValue.value.name,

age: bodyValue.value.age

}

const savedEmployee = await employeeService.save(employee);

console.log("savedEmployee:"+savedEmployee);

ctx.response.body = savedEmployee;

}

static async update(ctx: Context){

var bodyValue = await ctx.request.body();

let updateEmployee: Employee ={

id:bodyValue.value.id,

name:bodyValue.value.name,

age:bodyValue.value.age

}

const updatedEmployee = await employeeService.update(updateEmployee);

ctx.response.body=updatedEmployee;

}

static async findById(ctx: any){

const id = ctx.params.id;

console.log("id:"+id);

const employee = await employeeService.findById(id);

ctx.response.body=employee;

}

static async findAll(ctx: any){

const employees = await employeeService.findAll();

ctx.response.body=employees;

}

static async deleteById(ctx: any){

const id = ctx.params.id;

const success = await employeeService.deleteById(id);

ctx.response.body=success;

}

}

export default Controller;

#database/database.ts

import { Client } from "https://deno.land/x/mysql/mod.ts"

const client = await new Client().connect({

hostname: "127.0.0.1",

username: "root",

db: "deno",

poolSize: 3,

password: "123456"

});

export default client;

#models/employee.ts

export interface Employee{

id: number,

name: string,

age: number

}

#router/employeeRouter.ts

import { Router } from "https://deno.land/x/oak/mod.ts";

import Controller from "../controllers/employeeController.ts";

const router = new Router();

router.get("/",Controller.hello);

router.post("/save",Controller.save);

router.put("/update",Controller.update);

router.get("/findById/:id",Controller.findById);

router.get("/findAll",Controller.findAll);

router.delete("/deleteById/:id",Controller.deleteById);

export default router;

#services/employeeService.ts

import { Employee } from "../models/employee.ts";

import emlpoyeeRepo from "../repositories/employeeRepo.ts";

class employeeService{

static async save(employee: Employee){

return emlpoyeeRepo.save(employee);

}

static async update(employee: Employee){

return emlpoyeeRepo.update(employee);

}

static async findById(id: number){

return emlpoyeeRepo.findById(id);

}

static async findAll(){

return emlpoyeeRepo.findAll();

}

static async deleteById(id: number){

return emlpoyeeRepo.deleteById(id);

}

}

export default employeeService;

#main.ts

import { Application } from "https://deno.land/x/oak/mod.ts"

import {viewEngine,engineFactory,adapterFactory} from "https://deno.land/x/view_engine/mod.ts";

import router from "./routers/employeeRouter.ts";

const ejsEngine = engineFactory.getEjsEngine();

const oakAdapter = adapterFactory.getOakAdapter();

const app = new Application();

app.use(viewEngine(oakAdapter,ejsEngine));

app.use(router.routes());

app.use(router.allowedMethods());

console.log("Server Port 8000");

await app.listen({port: 8000 })

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值