1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > node.js + sequelize 操作 MySQL 数据库

node.js + sequelize 操作 MySQL 数据库

时间:2018-10-08 22:22:17

相关推荐

node.js + sequelize 操作 MySQL 数据库

Node.js + Sequelize 操作 MySQL 数据库

一. Sequelize 简介二. 基本操作1. 连接数据库2. 创建一张表3. 对数据表操作3.1 插入操作3.2 读取操作3.3 修改操作3.4 删除操作

一. Sequelize 简介

Sequelize是一个Node.js平台基于 Promise 的ORM用于操作管理MySQLPostgresSQLite关系型数据库Sequelize 官方文档/en/latest/

二. 基本操作

1. 连接数据库

const {Sequelize, DataTypes } = require('sequelize');/*// new Sequelize(database, [username=null], [password=null], [options={}])// class Sequelize 接收4个参数,后三个参数是可选的// 没有密码和optionsvar sequelize = new Sequelize('database', 'username')// 没有optionsvar sequelize = new Sequelize('database', 'username', 'password')// 没有密码有optionsvar sequelize = new Sequelize('database', 'username', null, {})// 都有var sequelize = new Sequelize('my_database', 'john', 'doe', {})// new Sequelize(uri, [options={}])// 通过uri连接数据库var sequelize = new Sequelize('mysql://localhost:3306/database', {})*/const sequelize = new Sequelize('数据库名', '用户名', '密码', {host: 'localhost', // 数据库地址dialect: 'mysql', // 指定连接的数据库类型pool: {max: 5, // 连接池中最大连接数量min: 0, // 连接池中最小连接数量idle: 10000 // 如果一个线程 10 秒钟内没有被使用过的话,那么就释放线程}});try {sequelize.authenticate();console.log('mysql连接成功.');} catch (error) {console.error('mysql连接失败:', error);}

2. 创建一张表

var User = sequelize.define('user', {id: {allowNull: false,autoIncrement: true,primaryKey: true,type: DataTypes.INTEGER},userName: {type: Sequelize.STRING, // 指定值的类型field: 'user_name' // 指定存储在表中的键名称},// 没有指定 field,表中键名称则与对象键名相同,为 emailemail: {type: Sequelize.STRING}}, {// 如果为 true 则表的名称和 model 相同,即 user// 为 false MySQL创建的表名称会是复数 users// 如果指定的表名称本就是复数形式则不变freezeTableName: false});// 创建表// User.sync() 会创建表并且返回一个Promise对象// 如果 force = true 则会把存在的表(如果users表已存在)先销毁再创建表// 默认情况下 forse = falsevar user = User.sync({force: false });

3. 对数据表操作

3.1 插入操作

方式一

var item1 = Item.build({userName:'Laptop',email: 'asdasd@',});//Inserting Data into databaseitem1.save().complete(function (err) {if (err) {console.log('Error in Inserting Record');} else {console.log('Data successfully inserted');}});

方式二

sequelize.sync().success(function () {Item.create({userName:'Laptop',email: 'asdasd@',}).success(function (data) {console.log(data.values)})});

3.2 读取操作

//读取所有的数据Item.find({}).complete(function (err,data) {console.log(data);});//条件读取Item.find({where:{name:'Laptop'}}).complete(function (err, data) {console.log(data);});

3.3 修改操作

//更新Laptop 到 ComputerItem.find({where:{name:'Laptop'}}).complete(function (err, data) {if(err){console.log(err);}if(data){data.updateAttributes({name:'Computer'}).success(function (data1) {console.log(data1);})}});

3.4 删除操作

//删除所有名字为compter的数据Item.find({where: {name: 'Computer'}}).complete(function (err, data) {if (err) {console.log(err);} else {data.destroy({}).success(function (err, data) {if(err){console.log(err);}else{console.log(data);}})}console.log(data);});

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。