diff --git "a/\351\202\271\347\246\217\347\247\221/\347\254\224\350\256\260/20240408-CRUD\345\220\216\347\253\257.md" "b/\351\202\271\347\246\217\347\247\221/\347\254\224\350\256\260/20240408-CRUD\345\220\216\347\253\257.md" new file mode 100644 index 0000000000000000000000000000000000000000..9efe44d2c1bd1ac7bb1f2d90dd762df686ae6797 --- /dev/null +++ "b/\351\202\271\347\246\217\347\247\221/\347\254\224\350\256\260/20240408-CRUD\345\220\216\347\253\257.md" @@ -0,0 +1,193 @@ +### 连接数据库 +```js + // 安装 sequelize 、tedious 依赖包 —— sqlserver + import {Op, DataTypes, Sequelize } from 'sequelize' + // 连接数据库 + const sequelize = new Sequelize('userdb', 'sa', '123456', { + host: 'ACODE-EWCLIWPVU\\SQLEXPRESS', + dialect: 'mssql' /* one of 'mysql' | 'postgres' | 'sqlite' | 'mariadb' | 'mssql' | 'db2' | 'snowflake' | 'oracle' */ + }) + // 测试数据库是否连接成功 + try { + await sequelize.authenticate(); + console.log('Connection has been established successfully.'); + } catch (error) { + console.error('Unable to connect to the database:', error); + } + // 创造模型(建表) + const user = sequelize.define('userinfo', { + name: DataTypes.STRING, + age: DataTypes.INTEGER, + sex: DataTypes.STRING, + hobby: DataTypes.STRING + }, { + // 上面会自动生成createdate等等,如果不希望有,就添加个这个 + timestamps: false + }) + // 同步数据库 + // false 才不会每次启动服务器自动刷新数据 + await sequelize.sync({ force: false }) +``` + +### 全部查询 —— 用于全部数据渲染,获取id +```js + route.get('/user/:id?', async (ctx) => { + let id = ctx.params.id * 1 || 0 + if (id > 0) { + let data = await user.findByPk(id) + if (data) { + ctx.body = { + code: 1000, + data: data, + msg: '获取指定用户成功!' + } + } + else { + ctx.body = { + code: 4000, + data: data, + msg: '获取指定用户失败!' + } + } + } + else { + let data = await user.findAll() + if (data.length !== 0) { + ctx.body = { + code: 1000, + data: data, + msg: '获取所有用户成功!' + } + } + else { + ctx.body = { + code: 4000, + msg: '获取所有用户失败!没有用户' + } + } + } + }) +``` + +### 模糊查询 +```js + route.get('/found', async (ctx)=>{ + let keywords = ctx.query.keywords.trim() + let data = await user.findAll({ + // 单个模糊查询 + // where: { + // name: { + // [Op.like]: '%keyword%' + // } + // } + + // 多个模糊查询 + where: { + [Op.or]:[ + { name: { [Op.like]: `%${keywords}%` } }, + {age: { [Op.like]: `%${keywords}%` } }, + {sex: { [Op.like]: `%${keywords}%` } }, + {hobby: { [Op.like]: `%${keywords}%` } } + ] + } + }) + if(data){ + ctx.body = { + code : 1000, + data : data, + msg : '模糊查询成功!' + } + } + else{ + ctx.body = { + code : 4000, + msg : '模糊查询失败!' + } + } +}) +``` + +### 新增 +```js + route.post('/user', async (ctx) => { + let obj = ctx.request.body + if (obj) { + let o = { + name : obj.name, + age : obj.age, + sex : obj.sex, + hobby : obj.hobby + } + await user.create(o) + let data = await user.findAll() + ctx.body = { + code: 1000, + data: data, + msg: '新增数据成功!' + } + } + else{ + ctx.body = { + code: 1000, + msg:'新增数据失败,没有添加对象!' + } + } +}) +``` + +### 修改 +```js + route.put('/user/:id', async (ctx) => { + let id = ctx.params.id + let obj = ctx.request.body + if(obj){ + let o = { + name : obj.name, + age : obj.age, + sex : obj.sex, + hobby : obj.hobby + } + await user.update(o,{ + where:{ + id: id + } + }) + let data = await user.findAll() + ctx.body = { + code: 1000, + data: data, + msg:'修改数据成功!' + } + } + else{ + ctx.body = { + code: 4000, + msg:'修改数据失败!' + } + } + +}) +``` + +### 删除 +```js + route.delete('/user/:id', async (ctx) => { + let id = ctx.params.id*1 || 0 + if(id > 0){ + await user.destroy({ where: { id: id } }) + let data = await user.findAll() + ctx.body = { + code : 1000, + data : data, + msg: '删除用户成功!' + } + } + else{ + ctx.body = { + code : 4000, + msg:'删除用户失败!' + } + } + + }) +``` \ No newline at end of file diff --git "a/\351\202\271\347\246\217\347\247\221/\347\254\224\350\256\260/20240409-CRUD\345\211\215\347\253\257.md" "b/\351\202\271\347\246\217\347\247\221/\347\254\224\350\256\260/20240409-CRUD\345\211\215\347\253\257.md" new file mode 100644 index 0000000000000000000000000000000000000000..ffe01ae86706e6cea8860565f6ab75d3a37884c2 --- /dev/null +++ "b/\351\202\271\347\246\217\347\247\221/\347\254\224\350\256\260/20240409-CRUD\345\211\215\347\253\257.md" @@ -0,0 +1,128 @@ +### 全部渲染 +```js + // 定义一个函数,用于渲染不同数组中的数据 +function renderData(dataArray) { + let tb = $('#tb tbody'); + for (let i = 0; i < dataArray.length; i++) { + let html = ` +