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 相关文章推荐
自动完成JS类(纯JS, Ajax模式)
Mar 12 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
Jul 27 Javascript
php跨域调用json的例子
Nov 13 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
Jul 22 Javascript
vue多级多选菜单组件开发
Sep 08 Javascript
JavaScript数据结构链表知识详解
Nov 21 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
Jan 18 Javascript
jquery 禁止鼠标右键并监听右键事件
Apr 27 jQuery
基于jquery.page.js实现分页效果
Jan 01 jQuery
Vue实现导出excel表格功能
Mar 30 Javascript
纯JS开发baguetteBox.js响应式画廊插件
Jun 28 Javascript
WebWorker 封装 JavaScript 沙箱详情
Nov 02 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
PHP MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
jquery.post用法示例代码
2014/01/03 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
微信小程序 图片加载(本地,网路)实例详解
2017/03/10 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
[02:26]DOTA2英雄米拉娜基础教程
2013/11/25 DOTA
Python 的描述符 descriptor详解
2016/02/27 Python
python Pandas 读取txt表格的实例
2018/04/29 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
中西医专业毕业生职业规划书
2014/02/24 职场文书
出纳担保书范文
2014/04/02 职场文书
图书馆标语
2014/06/19 职场文书
学习张丽丽心得体会
2014/09/03 职场文书
交通事故委托书范本(2篇)
2014/09/21 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
七一慰问简报
2015/07/20 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
vue中 this.$set的使用详解
2021/11/17 Vue.js
Redis命令处理过程源码解析
2022/02/12 Redis