在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查
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); });
?
官方文檔:戳
轉載于:https://www.cnblogs.com/kongxianghai/p/5582661.html
總結
以上是生活随笔為你收集整理的在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “一半是春冰”上一句是什么
- 下一篇: Mysql蠕虫复制