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中cookie的添加、取值、删除示例代码
Oct 21 Javascript
js动态修改整个页面样式达到换肤效果
May 23 Javascript
jQuery操作select下拉框的text值和value值的方法
May 31 Javascript
使用jQuery实现验证上传图片的格式与大小
Dec 03 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
Aug 04 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
Oct 26 Javascript
使用jQuery操作HTML的table表格的实例解析
Mar 13 Javascript
js判断浏览器是否支持严格模式的方法
Oct 04 Javascript
使用vue如何构建一个自动建站项目
Feb 05 Javascript
微信小程序实现即时通信聊天功能的实例代码
Aug 17 Javascript
Nuxt升级2.0.0时出现的问题(小结)
Oct 08 Javascript
Vue3.0的优化总结
Oct 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中用文本文件做数据库的实现方法
2008/03/27 PHP
php多文件上传实现代码
2014/02/20 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
2016/12/23 Javascript
Vue实现自带的过滤器实例
2017/03/09 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
webpack之devtool详解
2018/02/10 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
python递归实现快速排序
2018/08/18 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
2020/11/19 Python
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
掌上明珠Java程序员面试总结
2016/02/23 面试题
高三自我鉴定范文
2013/10/19 职场文书
活动志愿者自荐信
2014/01/27 职场文书
干部选拔任用方案
2014/05/26 职场文书
2014年党课学习心得体会
2014/07/08 职场文书
入党转正申请报告
2015/05/15 职场文书
主持稿开场白
2015/06/01 职场文书
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技
Python实现信息管理系统
2022/06/05 Python