Node.js ORM 框架 sequelize 入門


導言

現在Node.js 上面的關系數據庫ORM 框架有

其中以sequelize的關注度最高…因為,當初,我就是看着sequelize 的star 數最高..於是就入坑了..對了,國內的話,前端亂燉的數據庫ORM用的就是sequelize

<!--more-->

Sequelize 歷史

對於我來說從2013年初到現在 接觸sequelize應該有接近一年了..在這過去一年里sequelize的進步還是挺大的….在以前的版本.sequelize 對於關聯表關系有着一些異常奇異的問題,這也導致,后邊sequelize 的幾個作者,下定決心做好單測…有興趣的朋友可以去圍觀一下sequelize的單元測試,就現在而言,sequelize應該可以算能用了,所以,也決定寫些東西推廣一下sequelize,讓一些人更加方便的入坑…

在sequelize開發歷史中,在1.7 的時候,開了一個2.0 的分支,這兩個分支的關系,可能有些人就混亂了,這里說一下,1.7 和 2.0 的版本是同步開發的,在1.7 正式出來的時候,1.7 和 2.0 的代碼是一樣的.不過,現在1.7已經正式發布,1.7和2.0 可能開始不同步了,所以,大家為了省事還是用1.7吧,至於2.0什么時候開發完..我估計得今年年底吧.

Let’s start!

先安裝一下sequelize 的命令行工具,方便一些初始化工作

Windows npm install -g sequelize *nix sudo npm install -g sequelize

安裝完以后,我們之間在項目目錄運行

sequelize -i

配置文件就會自動幫我們生成好了

├───config
└───migrations

config 目錄下的config.json 就是我們需要根據數據的配置進行修改的文件了

接下來我們安裝用到的包

npm install sequelize --save npm install sqlite3 --save npm install mysql --save

sequelize 是支持多方言數據庫(MySQL, MariaDB, SQLite and PostgreSQL)的ORM 框架.其中對於MariaDB 的支持..貌似就這一家了(不過用MariaDB應該不多吧).

為了展示sequelize 對於多數據庫的支持,我使用兩個不同的數據庫生產環境用mysql,測試開發用sqlite3.

然后去修改 config/config.json

  "development": { "username": null, "password": null, "database": "database_development", "option" : { "dialect": "sqlite", "storage": "test.sqlite", "define": { "timestamps": false, "freezeTableName": true } } }

對於sqlite3而言,直接把dialect 改為sqlite即可,如果是MySQL的,注意username,password,database一個都不能少!

對於define 里面的東西.這里先演示兩個. timestamps 對於表是否自動添加createAt 和 updateAt這兩個字段,如果你用不上的話,就關掉吧. freezeTableName, 是凍結表名,默認sequelize會幫你的定義的表名字自動加上s..所以,如果你用不上的話,就關掉吧.關於更多的配置請看http://sequelizejs.com/docs/latest/usage#options

Let’s run!

做了這么一番准備,現在開始讓我們開始用sequelize進行數據庫訪問吧!

var Sequelize = require('sequelize'); var node_env = process.env.NODE_ENV ? process.env.NODE_ENV : 'development';  //根據系統環境載入我們的配置 var config = require('../config/config')[node_env]; var dbStroage = new Sequelize(config.database, config.username, config.password, config.option);  //定義我們的User 表 var User = dbStroage.define('user', { username: Sequelize.STRING, password: Sequelize.STRING })  //如果是第一次運行的話,需要用sync 方法創建表 dbStroage.sync() .success(function () {  //用sequelize創建我們第一個用戶 User.create({ username : 'youxiachai', password : '123456' }).done(function (err, result){ console.log(err) console.log(result) }) }) .error(function (err){ console.log(err); })

對於sequelize的配置運行,就到此結束了,下次我們討論一下如何用sequelize 做一個Restful風格的應用.

本節完整代碼 https://github.com/youxiachai/sequelize-lesson


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM