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 相关文章推荐
Prototype ObjectRange对象学习
Jul 19 Javascript
ajax不执行success回调而是执行了error回调
Dec 10 Javascript
jquery给图片添加鼠标经过时的边框效果
Nov 12 Javascript
优化Jquery,提升网页加载速度
Nov 14 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
Jul 20 Javascript
JavaScript Date 知识浅析
Jan 29 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
Jun 12 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
Dec 11 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 jQuery
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
Nov 15 Javascript
微信小程序用户拒绝授权的处理方法详解
Sep 20 Javascript
JS实现可视化音频效果的实例代码
Jan 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
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
Laravel框架中自定义模板指令总结
2017/12/17 PHP
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
基于vue2实现左滑删除功能
2017/11/28 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
vue中使用rem布局代码详解
2019/10/30 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
Python解析nginx日志文件
2015/05/11 Python
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
python开发利器之ulipad的使用实践
2017/03/16 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
Python中创建二维数组
2018/10/17 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
python 简单的调用有道翻译
2020/11/25 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
2021/02/02 Python
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
应聘自荐信
2013/12/14 职场文书
文明宿舍获奖感言
2014/02/07 职场文书
老师对学生的寄语
2014/04/09 职场文书
鼓舞士气的口号
2014/06/16 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
工作检讨书500字
2014/10/19 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
食品药品安全责任书
2015/05/11 职场文书
青春雷锋观后感
2015/06/10 职场文书
芙蓉镇观后感
2015/06/10 职场文书
小学远程教育工作总结
2015/08/13 职场文书
python中requests库+xpath+lxml简单使用
2021/04/29 Python
opencv读取视频并保存图像的方法
2021/06/04 Python