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 相关文章推荐
javascript之大字符串的连接的StringBuffer 类
May 08 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
May 17 Javascript
JS实现切换标签页效果实例代码
Nov 01 Javascript
jquery获取tr并更改tr内容示例代码
Feb 13 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
Mar 03 Javascript
jquery得到iframe src属性值的方法
Sep 25 Javascript
JQuery中使用.each()遍历元素学习笔记
Nov 08 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
May 21 Javascript
教你一步步用jQyery实现轮播器
Dec 18 Javascript
vue.js前后端数据交互之提交数据操作详解
Apr 24 Javascript
详解vue-cli项目中怎么使用mock数据
May 29 Javascript
基于JS实现操作成功之后自动跳转页面
Sep 25 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自动给文章加关键词链接的函数代码
2012/11/29 PHP
php中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
js继承 Base类的源码解析
2008/12/30 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
fullPage.js和CSS3实现全屏滚动效果
2017/05/05 Javascript
微信小程序学习之数据处理详解
2017/07/05 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
python实现装饰器、描述符
2018/02/28 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
python使用 cx_Oracle 模块进行查询操作示例
2019/11/28 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
pytorch  网络参数 weight bias 初始化详解
2020/06/24 Python
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
小学岗位竞聘方案
2014/01/22 职场文书
有兼职工作经历的简历自我评价
2014/03/07 职场文书
代领报检证委托书范本
2014/10/11 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers