sequelize连接mysql_node.js通过Sequelize 连接MySQL的方法

本文详细介绍了如何通过Sequelize在Node.js项目中连接MySQL数据库,包括通过Koa2搭建项目、安装Sequelize、配置数据库连接、创建模型、定义路由及接口操作,如增删查改。
摘要由CSDN通过智能技术生成

一.通过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目录

a4ae28a5951076933da2f7c3875c5b95.png

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里面添加路由

ba846ffb6ca32c28934ef2e75441274a.png

2980ac5cab89e5cdf0935f4e2293cc23.png

//引入刚刚创建的new2路由

const new2 =require('./routes/new2')

//使用我们的路由

app.use(new2.routes(),new2.allowedMethods())

4.3启动项目

af9fcba9f9b3902e4ddec996fc8c8b26.png

在数据库中查看

3c7a85836e38e0d53047151625af7451.png

5.测试

5.1使用浏览器查看

f17c7cb9bd7459bff5bd63e92833cec5.png

5.2.使用postman测试接口

测试find接口(因为我们写的find方法使用的post方法所以记得将get换成post):

534d02760c2a1b7952f9b34afb8c52c8.png

测试get接口

4974eb62114e47615d40d90de44d2ccb.png

展示一下最后的目录

c45344124278b26904315571eb9f1638.png

到此这篇关于node.js通过Sequelize 连接MySQL的文章就介绍到这了,更多相关node.js连接MySQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值