From a1d7a775ac4456df6de53acbbb2219dc7334711c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=8F=AF=E7=9B=88?= <3211440545@qq.com> Date: Sun, 14 Apr 2024 21:32:29 +0800 Subject: [PATCH] 1 --- .../240408.md" | 164 ++++++++++++++++++ .../240409.md" | 55 ++++++ 2 files changed, 219 insertions(+) create mode 100644 "\346\235\250\345\217\257\347\233\210/240408.md" create mode 100644 "\346\235\250\345\217\257\347\233\210/240409.md" diff --git "a/\346\235\250\345\217\257\347\233\210/240408.md" "b/\346\235\250\345\217\257\347\233\210/240408.md" new file mode 100644 index 0000000..11a0b9a --- /dev/null +++ "b/\346\235\250\345\217\257\347\233\210/240408.md" @@ -0,0 +1,164 @@ +```js +import Koa from "koa"; +import Router from "koa-router"; +import bodyParser from "koa-bodyparser"; +import cors from "koa2-cors"; +import { Op,DataTypes, Sequelize } from "sequelize"; + +const app = new Koa(); +const router = new Router(); + +let sequelize = new Sequelize('myData','sa','123456',{ + host:'localhost', + dialect:'mssql' +}) +//这句代码定义了一个名为 Films 的模型,包含了四个字段:filmName(字符串类型)、actor(字符串类型)、score(整数类型)和 flag(字符串类型)。这个模型将在数据库中创建一个名为 Films 的表。 +const Films = sequelize.define('Films',{ + filmName:{type:DataTypes.STRING}, + actor:{type:DataTypes.STRING}, + score:{type:DataTypes.DOUBLE}, + flag:{type:DataTypes.STRING} +}) + +await Films.sync(); +//插入数据 +const filmsData = [ + { + filmName:"1", + actor:"2", + score:"9.8", + flag:"1" + }, + { + + filmName:"1", + actor:"2", + score:"9.8", + flag:"1" + }] + Films.bulkCreate(filmsData).then(()=>{ + console.log('数据插入成功'); +}) +router.get('/films/:id?',async (ctx)=>{ + let id = ctx.params.id || 0; + //ctx 是 Koa 框架中的上下文对象,ctx.request 表示当前请求对象,ctx.request.query 表示获取请求的查询参数。而 keyword 是一个变量,用来存储从查询参数中名为 keyword 的值。 +//所以,let keyword = ctx.request.query.keyword; 的意思是将 HTTP 请求中查询参数中名为 keyword 的值赋给变量 keyword,以便后续在代码中使用这个值进行相关操作,比如根据关键字进行搜索或过滤数据。 + let keyword = ctx.request.query.keyword + console.log(keyword) + // console.log(id) + let data; + if(id>0){ + + data = await Films.findByPk(id); + console.log(data); + ctx.body = { + code:1000, + msg:"查找指定数据成功", + data:data + + } + }else{ + //在查询中,where 对象指定了查询条件,这里使用了 Sequelize 提供的 [Op.substring] 操作符,表示模糊查询,查找包含指定关键字 keyword 的 shopName 字段值。${keyword} 是 ES6 模板字符串的语法,用来动态插入变量 keyword 的值。 + if(keyword){ + let arr = await Films.findAll({ + where:{ + [Op.or]:[ + {filmName:{[Op.like]:`%${keyword}%`}}, + {actor:{[Op.like]:`%${keyword}%`}}, + {score:{[Op.like]:`%${keyword}%`}}, + {flag:{[Op.like]:`%${keyword}%`}} + ] + } + + }); + ctx.body = { + code:1000, + msg:"查找指定数据成功", + data:arr + + } + }else{ + data = await Films.findAll(); + ctx.body = { + code:1000, + msg:"查找全部数据成功", + data:data + + } + } + + } +}) + +router.post('/films',async (ctx)=>{ + let obj = ctx.request.body; + console.log(obj) + let row = await Films.create(obj) + ctx.body={ + code:1000, + msg:"创建成功", + data:row + } +}) + +router.put('/films/:id',async (ctx)=>{ + let id = ctx.params.id||0; + // console.log(id); + let obj = ctx.request.body; + console.log(obj); + let item = await Films.findByPk(id); + console.log(item); + if(item){ + let date = await Films.update(obj,{ + where:{ + id:id + } + }); + console.log(date) + ctx.body={ + code:1000, + data:obj, + msg:"修改成功" + } + }else{ + ctx.body={ + code:4000, + data:null, + msg:"找不到id" + } + } +}) + +router.delete('/films/:id',async (ctx)=>{ +let id = ctx.params.id || 0; +let row = await Films.findByPk(id); +if(row){ + Films.destroy({ + where:{ + id:id + } + }) + + ctx.body = { + code:1000, + data:null, + msg:"删除成功" + } +}else{ + ctx.body ={ + code:4000, + data:null, + msg:"找不到" + } +} +}) + +app.use(cors()) +app.use(bodyParser()); +app.use(router.routes()); + +let port = 3000; +app.listen(port); +console.log(`http://localhost:${port}`) + +``` \ No newline at end of file diff --git "a/\346\235\250\345\217\257\347\233\210/240409.md" "b/\346\235\250\345\217\257\347\233\210/240409.md" new file mode 100644 index 0000000..c8a4b36 --- /dev/null +++ "b/\346\235\250\345\217\257\347\233\210/240409.md" @@ -0,0 +1,55 @@ +```js +//edit.js +$(() => { + let ID = urlStr(); + if (ID > 0) { + axios.get(`http://localhost:3000/films/${ID}`).then(res => { + let data = res.data.data + console.log(data) + $('[name="filmName"]').val(data.filmName); + $('[name="actor"]').val(data.actor); + $('[name="score"]').val(data.score); + $('[name="flag"]').val(data.flag); + // let arr=[data] + // arr.forEach(item => { + // $('[name="filmName"]').val(item.filmName); + // $('[name="actor"]').val(item.actor); + // $('[name="score"]').val(item.score); + // $('[name="flag"]').val(item.flag); + // } + // ); + } + ) + } +}) +function btnSave() { + let filmName = $('[name="filmName"]').val(); + let actor = $('[name="actor"]').val(); + let score = $('[name="score"]').val(); + let flag = $('[name="flag"]').val() + let obj = { + filmName,actor,score,flag + } + console.log(obj) + let ID = urlStr(); + if(ID>0){ + + axios.put(`http://localhost:3000/films/${ID}`,obj).then(res=>{ + location.href = "./index.html" + }) + }else{ + axios.post(`http://localhost:3000/films`,obj).then(res=>{ + location.href = "./index.html" + }) + } + // location.href = "./index.html" +} +function btnCancel() { + location.href = "./index.html" +} +function urlStr() { + let url = location.href.split('='); + // console.log(url) + return url[1] +} +``` \ No newline at end of file -- Gitee