node.js通过Sequelize 连接MySQL的方法


Posted in Javascript onDecember 28, 2020

一.通过koa2脚手架构建项目

1.1 安装koa-generator
在终端输入:

$ npm install -g koa-generator

1.2 使用koa-generator生成koa2项目

$ koa2 HelloKoa2

成功创建项目后,进入项目目录,并执行npm install命令

$ cd HelloKoa2 
$ npm install

1.3 启动项目
在终端输入:

$ npm start

项目启动后,默认端口号是3000,在浏览器中运行可以得到下图的效果说明运行成功。

二.创建连接

2.1刚刚创建的文件使用webstorm打开
新建一个db目录

node.js通过Sequelize 连接MySQL的方法

2.2查看Sequelize文档
使用npm安装Sequelize

npm install --save sequelize

你还必须手动为所选数据库安装驱动程序选择一个方法之一:

# 选择以下之一:
$ npm install --save pg pg-hstore # Postgres
$ npm install --save mysql2
$ npm install --save mariadb
$ npm install --save sqlite3
$ npm install --save tedious # Microsoft SQL Server

我这里下载得是MySQL2

2.3连接数据库
再刚刚创建得db文件加里面添加**config.js**
添加连接代码:

module.exports = {
 dbsMysql: 'mysql://root:123456@localhost:3306/new'
 //root是数据库管理员账号,‘123546'是密码 3306是端口号(MySQL默认是3306) school_admin是数据库名称

}

继续在db文件夹里面添加mysql.js
添加连接以及添加日记:

const Sequelize = require('sequelize');
const mysqlurl = require('./config').dbsMysql
const sequelize = new Sequelize(mysqlurl, {
 // 选择一种日志记录参数
 logging: console.log // 默认值,显示日志函数调用的第一个参数
});
// //每次启动server刷新数据库
//  (async ()=>{
//   await sequelize.sync({ force: true });
//  })()

module.exports = sequelize

三.创建模型

3.1模型定义
在db目录下添加models文件夹再添加一个new2.js
定义模型:

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

const new2 = sequelize.define('t_new2', {
  name: {
   type: DataTypes.STRING,
   allowNull: false
  },
 },
 {
  // 这是其他模型参数
  freezeTableName: true
 });
// 定义的模型是类本身
module.exports= new2

四.添加路由

4.1创建new2路由
在routes文件夹中添加new2.js

//引入kob得routes模块
const router = require('koa-router')()
//定义模型为刚刚创建得new2.js
let Model = require("../db/models/new2");
//正常来说启动端口为http://localhost:3000 添加/new2就可以进入new2路由
router.prefix('/new1')
// 进入new2路由以后可以打印this is a users response!
router.get('/', function (ctx, next) {
 ctx.body = 'this is a users response!'

})
//设置增加add接口
router.post('/add', async function (ctx, next) {
 console.log(ctx.request.body)
 const new2 = await Model.create(ctx.request.body);
 ctx.body = {
  code:200,
  data:new2
 }
})
//设置查询find接口
router.post('/find', async function (ctx, next) {
 const new2 =await Model.findAll({include: []})
 console.log(1111)
 ctx.body = {
  code: 200,
  data: new2
 }
})
//设置通过id得到所需信息的get接口
router.post('/get', async function (ctx, next) {
 // let users = await User.
 // find({})
 console.log(ctx.request.body)


 let new2 = await Model.findOne({
  // attributes: ['name', 'where']
  where: {
   id: ctx.request.body.id
  }
 });
 ctx.body = {
  code:200,
  data:new2
 }
})
//设置修改update接口
router.post('/update', async function (ctx, next) {
 console.log(ctx.request.body)
 // let pbj = await Model.update({ _id: ctx.request.body._id }, ctx.request.body);

 let new2 = await Model.update(ctx.request.body, {
  where: {
   id: ctx.request.body.id
  }
 });
 ctx.body = new2
})
//设置删除delete接口
router.post('/delete', async function (ctx, next) {
 console.log(ctx.request.body)
 // 删除所有名为 "Jane" 的人
 await Model.destroy({
  where: { id: ctx.request.body.id }
 });
 ctx.body = 'shibai '
})

// //每次启动server刷新数据库
//  (async ()=>{
//   await sequelize.sync({ force: true });
//  })()
module.exports = router

4.2在app.js里面添加路由

node.js通过Sequelize 连接MySQL的方法
node.js通过Sequelize 连接MySQL的方法

//引入刚刚创建的new2路由
const new2 =require('./routes/new2')
//使用我们的路由
app.use(new2.routes(),new2.allowedMethods())

4.3启动项目

node.js通过Sequelize 连接MySQL的方法

在数据库中查看

node.js通过Sequelize 连接MySQL的方法

5.测试

5.1使用浏览器查看

输入url:http://localhost:3000/new2

node.js通过Sequelize 连接MySQL的方法

5.2.使用postman测试接口
测试find接口(因为我们写的find方法使用的post方法所以记得将get换成post):

http://localhost:3000/new2/find

node.js通过Sequelize 连接MySQL的方法

测试get接口

node.js通过Sequelize 连接MySQL的方法

展示一下最后的目录

node.js通过Sequelize 连接MySQL的方法

到此这篇关于node.js通过Sequelize 连接MySQL的文章就介绍到这了,更多相关node.js连接MySQL内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
新手常遇到的一些jquery问题整理
Aug 16 Javascript
js特殊字符转义介绍
Nov 05 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
Sep 01 Javascript
面向切面编程(AOP)的理解
May 01 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
Jun 09 Javascript
JavaScript遍历求解数独问题的主要思路小结
Jun 12 Javascript
浅谈JavaScript的计时器对象
Dec 26 Javascript
javascript 玩转Date对象(实例讲解)
Jul 11 Javascript
微信小程序 动画的简单实例
Oct 12 Javascript
代码详解javascript模块加载器
Mar 04 Javascript
简单了解JS打开url的方法
Feb 21 Javascript
JS绘图Flot如何实现动态可刷新曲线图
Oct 16 Javascript
解决elementui表格操作列自适应列宽
Dec 28 #Javascript
微信小程序视频弹幕发送功能的实现
Dec 28 #Javascript
React实现todolist功能
Dec 28 #Javascript
mustache.js实现首页元件动态渲染的示例代码
Dec 28 #Javascript
11个Javascript小技巧帮你提升代码质量(小结)
Dec 28 #Javascript
vue中watch的用法汇总
Dec 28 #Vue.js
浅析vue中的nextTick
Dec 28 #Vue.js
You might like
for循环连续求和、九九乘法表代码
2012/02/20 PHP
PHP中替换换行符的几种方法小结
2012/10/15 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
基于javascript实现彩票随机数生成(简单版)
2020/04/17 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
jQuery+ajax简单实现文件上传的方法
2016/06/03 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
JS作用域链详解
2017/06/26 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
js禁止表单重复提交
2017/08/29 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python操作sqlite的CRUD实例分析
2015/05/08 Python
Python递归函数定义与用法示例
2017/06/02 Python
python读取文本绘制动态速度曲线
2018/06/21 Python
python实现电子书翻页小程序
2019/07/23 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
体育老师的教学自我评价分享
2013/11/19 职场文书
家长会邀请书
2014/01/25 职场文书
写好自荐信需做到的5要点
2014/03/07 职场文书
项目投资意向书
2014/04/01 职场文书
科技活动周标语
2014/10/08 职场文书
党员教师批评与自我批评发言稿
2014/10/15 职场文书
努力学习保证书
2015/02/26 职场文书
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL