node操作mysql資料庫例項
阿新 • • 發佈:2020-11-28
const Koa = require("koa"); const Router = require("koa-router"); //要引入promise類 const mysql = require("mysql2/promise"); const app = new Koa(); const router = new Router(); //實現實現對USERS表增刪改查 //使用Promise (async () => { const connection = await mysql.createConnection({ host: "localhost", user:"root", password: "zhangpp", database: "zpp_web", }); //addUser router.get("/adduser", async (ctx) => { let { name, age } = ctx.query; console.log(name, age); let sql = `INSERT INTO users (id,name,age) VALUES (0,?,?)`; let [row] = await connection.execute(sql, [name, +age]);if (row.affectedRows) { ctx.body = "add user scuuess"; } else ctx.body = "add user fail"; }); //deluser router.get("/deluser", async (ctx) => { let { id } = ctx.query; let sql = "DELETE FROM users WHERE id=?"; let [row] = await connection.execute(sql, [id]); if (row.affectedRows) ctx.body = "del user seccuss";else ctx.body = "del user fail"; }); //updateuser router.get("/updateuser", async (ctx) => { let { age, id } = ctx.query; let sql = `UPDATE users SET age=? where id=? `; let [row] = await connection.execute(sql, [age, id]); if (row.affectedRows) ctx.body = "update user seccuss"; else ctx.body = "update user fail"; }); //finduser router.get("/finduser", async (ctx) => { let { id } = ctx.query; let sql=`SELECT * FROM users WHERE id=?`; let [row]=await connection.execute(sql,[id]); ctx.body=row; }); //findeUsers router.get('/findusers',async (ctx)=>{ let {age,ofset=0,limit=5}=ctx.query; let sql=`SELECT * FROM users where age>? ORDER BY age LIMIT ?,?`; let [row]=await connection.execute(sql,[age,ofset,limit]); ctx.body=row; }) })(); app.use(router.routes()); app.listen(8080, () => { console.log("建立成功,埠:8080"); });
學習一下ORM 操作資料庫
const { Sequelize } = require("sequelize"); //使用ORM 物件關係型資料庫 const getUserModel = require("./user_model"); //連線mysql 資料庫 const sequelize = new Sequelize({ dialect: "mysql", //連線的資料 host: "localhost", port: "3306", username: "root", password: "zhangpp", database: "zpp_web", }); //獲取user model 物件 var userModel = getUserModel(sequelize); //物件初始化到資料庫表 sequelize.sync(); //同步,如果表發生變化不會同步過去 // sequelize.sync({force:true}) //同步,強制同步
建立user_model.js const {Model,DataTypes}=require('sequelize'); class userModel extends Model{ } module.exports=(sequelize)=>{ userModel.init({ id:{ type:DataTypes.INTEGER, primaryKey:true, autoIncrement:true, allowNull:false, }, name:{ type:DataTypes.STRING, allowNull:false, }, age:{ type:DataTypes.INTEGER, allowNull:false } },{// 第二個引數設定表的資訊 tableName:'users', //表名 sequelize, //sequelize例項 createdAt:false, updatedAt:false }) return userModel; }
改造mysql2操作資料庫通過sequelize物件實現
建立 let row = await userModel.create({ name,age,}); ctx.body = row; 刪除 let row = await userModel.destroy({ where: { id,},}); 修改 let row = await userModel.update( {age}, {where: {id }} ); 查詢 let row = await userModel.findByPk(+id); //通過主鍵id查詢 多條件查詢 let row = await userModel.findAll({ where: { age: { [Op.gt]: age, }, }, order: [["age", "DESC"]], offset: +ofset, limit: +limit, });