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 hasOwnProperty 方法 & in 关键字
Nov 26 Javascript
IE下写xml文件的两种方式(fso/saveAs)
Aug 05 Javascript
js使用栈来实现10进制转8进制与取除数及余数
Jun 11 Javascript
JavaScript实现点击自动选择TextArea文本的方法
Jul 02 Javascript
javascript 判断页面访问方式电脑或者移动端
Sep 19 Javascript
干货!教大家如何选择Vue和React
Mar 13 Javascript
微信小程序实现轮播图效果
Sep 07 Javascript
JS中使用textPath实现线条上的文字
Dec 25 Javascript
vue组件实现可搜索下拉框扩展
Oct 23 Javascript
angularjs1.5 组件内用函数向外传值的实例
Sep 30 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
May 07 Javascript
vue实现选中效果
Oct 07 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单元测试phpunit入门实例教程
2017/11/17 PHP
关于跨站脚本攻击问题
2011/12/22 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
2017/07/07 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
Node.js中环境变量process.env的一些事详解
2017/10/26 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
2018/01/26 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
2014/06/04 Python
python操作ie登陆土豆网的方法
2015/05/09 Python
Python使用gRPC传输协议教程
2018/10/16 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
Python之使用adb shell命令启动应用的方法详解
2019/01/07 Python
python-numpy-指数分布实例详解
2019/12/07 Python
python 实现字符串下标的输出功能
2020/02/13 Python
解决c++调用python中文乱码问题
2020/07/29 Python
python 基于wx实现音乐播放
2020/11/24 Python
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
Linux面试题LINUX系统类
2015/11/25 面试题
Linux内核产生并发的原因
2016/11/08 面试题
产品包装策划方案
2014/05/18 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
广播体操口号
2014/06/18 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
租赁协议书
2015/01/27 职场文书
监理中标通知书
2015/04/16 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
详解SQL的窗口函数
2022/04/21 Oracle
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers