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 相关文章推荐
this[] 指的是什么内容 讨论
Mar 24 Javascript
基于jQuery的消息提示插件之旅 DivAlert(三)
Apr 01 Javascript
JS跨域总结
Aug 30 Javascript
两种方法实现文本框输入内容提示消失
Mar 17 Javascript
JQuery中的事件及动画用法实例
Jan 26 Javascript
javascript元素动态创建实现方法
May 13 Javascript
Vue2组件tree实现无限级树形菜单
Mar 29 Javascript
webpack 2.x配置reactjs基本开发环境详解
Aug 08 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
Sep 04 Javascript
vue.js编译时给生成的文件增加版本号
Sep 17 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
Aug 29 Javascript
vue+springboot实现登录验证码
May 27 Vue.js
解决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
一个经典的PHP文件上传类分享
2014/11/18 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
设定php简写功能的方法
2019/11/28 PHP
Javascript 判断函数类型完美解决方案
2009/09/02 Javascript
javascript 24小时弹出一次的代码(利用cookies)
2009/09/03 Javascript
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
javascript弹出窗口实现代码
2015/11/12 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
微信小程序实现顶部导航特效
2019/01/28 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
实例讲解Python中浮点型的基本内容
2019/02/11 Python
Python 3 判断2个字典相同
2019/08/06 Python
django删除表重建的实现方法
2019/08/28 Python
python集合常见运算案例解析
2019/10/17 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
抽象方法、抽象类怎样声明
2014/10/25 面试题
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
营业经理岗位职责
2013/11/10 职场文书
单位提档介绍信
2015/10/22 职场文书
《秋思》教学反思
2016/02/23 职场文书
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js