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实现点击弹出层效果的简单实例
Mar 03 Javascript
javascript动态设置样式style实例分析
May 13 Javascript
浅谈setTimeout 与 setInterval
Jun 23 Javascript
jquery组件WebUploader文件上传用法详解
Oct 23 Javascript
VueJS事件处理器v-on的使用方法
Sep 27 Javascript
node.js 用socket实现聊天的示例代码
Oct 17 Javascript
bootstrap table sum总数量统计实现方法
Oct 29 Javascript
JS实现可针对算术表达式求值的计算器功能示例
Sep 04 Javascript
vue使用高德地图根据坐标定位点的实现代码
Aug 22 Javascript
通过vue写一个瀑布流插件代码实例
Sep 07 Javascript
在Vue中使用Select选择器拼接label的操作
Oct 22 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
Nov 13 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
一个简单实现多条件查询的例子
2006/10/09 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
Python深入学习之特殊方法与多范式
2014/08/31 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
Django数据库表反向生成实例解析
2018/02/06 Python
Python代码打开本地.mp4格式文件的方法
2019/01/03 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
Python基于smtplib协议实现发送邮件
2020/06/03 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
2020/06/30 Python
CSS3动画:5种预载动画效果实例
2017/04/05 HTML / CSS
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
汽车检测与维修个人求职信
2013/09/24 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电
十个Python自动化常用操作,即拿即用
2021/05/10 Python