[转]在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[转]在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查相关的知识,希望对你有一定的参考价值。
本文转自:https://www.cnblogs.com/kongxianghai/p/5582661.html
Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用javascript开发并且能够用在Node.JS环境中,易于使用,支持多SQL方言(dialect),。它当前支持mysql,、MariaDB、SQLite、PostgreSQL、Sql Server 数据库。
目前在Node.js中,Sequelize的关注度较高,用的也较多。
因为是基于promise规范,在调用后的处理上不再是callback方式,而是统一的链式调用方式,调用直观,易读。
那么就先用起来吧,虽然还有很多坑,但互联网上开源的东西有哪个是让人特别省心的呢,是个好东西就用吧,碰到坑也只能用人肉去填了,(^-^)。
安装
建个工程文件夹,并进入,在命令行中运行安装sequelize命令。
npm install sequelize
安装mysql
npm install mysql
创建sequelize对象
在代码顶部先要把sequelize库require进来。
第一个参数\'test1\' 是数据库名。
第二个参数\'root\'是登录用户名。
第三个参数\'123456\'是登录用户对应的密码。
第四个参数:
host:数据库主机地址
dialect:\'mysql\'|\'sqlite\'|\'postgres\'|\'mssql\'
var Sequelize = require(\'sequelize\'); var sequelize = new Sequelize(\'test1\', \'root\', \'123456\', { host: \'172.16.16.138\', dialect: \'mysql\' });
表结构
在mysql的test1数据库中建users表。
创建表对应的对象模型
一条记录对应一个User对象。
var User = sequelize.define(\'user\', { name: Sequelize.STRING, password: Sequelize.STRING, mail: Sequelize.STRING });
插入记录
调用模型对象的create方法插入一条user记录。
通过promise的方式对插入完成和插入失败进行处理,链式调用非常方便,再也看不到callback了。
User.create({ name: \'XiaoMing\', password: \'1234567890\', mail: \'xiaoming@qq.com\' }).then(function(result){ console.log(\'inserted XiaoMing ok\'); }).catch(function(err){ console.log(\'inserted XiaoMing error\'); console.log(err.message); });
查询记录
调用模型对象的findAll方法进行查询操作,在参数中可以制定where条件。
where条件甚至可以支持数据库自身特有的函数。
where具体写法,参考:http://sequelize.readthedocs.io/en/latest/docs/querying/
User.findAll({ where:{ name:{ $like:\'Zhang%\' } } }).then(function(result){ console.log(\'query all users\'); for (var i = 0, usr; usr = result[i++];) { console.log(\'nae=\' + usr.name + \', password=\' + usr.password + \', mail=\' + usr.mail); } });
修改记录
调用模型对象的update方法进行更新操作,在第一个参数中指定更新的字段和值,在第二个参数中指定条件。
User.update({ password:\'12\' },{ where:{ name:{ $like:\'Xiao%\' } } }).then(function(result){ console.log(\'updated user\'); console.log(result); });
删除记录
调用模型对象的destroy方法进行删除操作,在参数中指定删除条件。
User.destroy({ where:{ name:{ $like:\'Zhang%\' } } }).then(function(result){ console.log(\'destroy user\'); console.log(result); });
官方文档:戳
以上是关于[转]在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查的主要内容,如果未能解决你的问题,请参考以下文章
Node.js——Node+Mongodb 架构常见性能问题 (转)