koa2 mysql增删改查_koa+mysql实现增删改查-全栈之路

Date: 2020-4-23

以前很少写文章,从今天开始我要挑战一下自己,连续输出100篇技术类文章。这100篇文章我尽量以实战案例为主。

如果你觉得本文还不错,记得关注或者给个 star,你们的赞和 star 是我编写更多更精彩文章的动力!

GitHub 地址

本文重点内容

从 0 到 1 集成 node + mysql + ejs 用户管理系统

上手 sequelize 不使用sql操作数据库

熟悉 MVC 开发模式

成品演示

关键技术点

1.1 数据库操作

1.2 MVC 模式是什么?

1.1 数据库操作

// 使用 sequelize 代理数据库操作

const { Sequelize, Model, DataTypes } = require('sequelize');

const config = require('./config')

// 配置数据库连接

const sequelise = new Sequelize(

dbName,

username, password,

{

host: host,

dialect: 'mysql', // 配置方言

})

class User extends Model {}

// 创建表

User.init({

username: DataTypes.STRING,

birthday: DataTypes.DATE

}, { sequelize, modelName: 'user' });

sequelize.sync() // 生成数据表

.then(() => User.create({ // 插入数据

username: 'janedoe',

birthday: new Date(1980, 6, 20)

}))

.then(jane => {

console.log(jane.toJSON());

});

1.2 MVC模式是什么?

MVC即Model、View、Controller即模型、视图、控制器

Module - 对象和业务逻辑

View - 用户界面

Controller - 用来调度 View 和 Model

开始撸代码

第一步 初始化目录

先来初始化下目录结构:

$ mkdir demo_001 && cd demo_001

$ npm init -y

$ npm i -s nodemon better-npm-run

$ npm i -s koa koa-views @koa/router koa-bodyparser

$ npm i -s ejs sequelize mysql2

各个库的版本号为:

@koa/router: 9.0.0, better-npm-run: 0.1.1,ejs: 3.0.2,koa: 2.11.0,koa-views:6.2.1,sequelize:5.21.6,koa-bodyparser:4.3.0,koa-static:5.0.0,mysql2:2.1.0,nodemon:2.0.3

添加 npm scripts 到 package.json:

"scripts": {

"start": "npm run dev",

"dev": "better-npm-run dev",

"prd": "better-npm-run prd"

},

"betterScripts": {

"dev": {

"command": "nodemon app.js",

"env": {

"NODE_ENV": "development"

}

},

"prd": {

"env": {

"NODE_ENV": "production"

},

"command": "pm2 start app.js -n demo_001"

}

},

第二步 实现 view 层

新建 app.js

// app.js 代码

const Koa = require('koa');

const views = require('koa-views');

const path = require('path');

const bodyparser = require('koa-bodyparser');

const app = new Koa();

app.keys = ['my keys'];

app.use(bodyparser());

app.use(views(path.join(__dirname, './views'), { extension: 'ejs' }));

app.listen(3000, () => {

console.log('server is running', new Date());

});

让代码跑起来,之后修改代码不用频繁的重启服务。因为开发环境是用 nodemon 托管的

$ npm start

新建 views 目录结构

demo_001

├── router

│ └── index.js

├── views

│ ├── index.ejs

│ ├── header.ejs

│ ├── create.ejs

│ └── edit.ejs

└── app.json

└── package.json

view 层核心代码:

node + mysql 实现增删改查

实现增删改查

添加用户

border-color: #ccc;

}

table td, th{

background: #fff;

}

usernamepwdphoneagegender操作

修改

删除

width: 80px;

display: inline-block;

text-align: right;

padding-right: 10px;

}

返回首页

username

pwd

phone

age

gender

Submit

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值