name
star
sequelize
19.9k
knex
10.5k
Bookshelf
5.7k
以上数据截止2019.9.18
sequelize
文档齐全,Star最多。
支持数据库:postgresql、mysql、sqlite和sqlserver
支持原生SQL 连接池 事务 迁移 CLI
knex
knex本身不是ORM框架,它的升级是bookshelf,bookshelf是ORM
支持数据库:MSSQL, MySQL, PostgreSQL, SQLite3, Oracle
bookshelf
bookshelf是基于knex的ORM框架。
支持数据库:mysql & mariadb、postgresql、sqlite3和Oracle
特性: 事务 连接池 流式查询 promise和callback API 原生SQL语句
sequelize使用
1、连接数据库
// var config = {
// database: 'protocol',
// username: 'root',
// password: '123456',
// host: 'localhost',
// port: 3306
// };
var sequelize = new Sequelize(config.database, config.username, config.password, {
host: config.host,
port: config.port,
dialect: 'mysql',
logging: console.log,
pool: {
max: 5,
min: 0,
idle: 30000
},
timestamps: false
//最好关掉timestamps , 框架自动帮你添加时间到UpdatedAt上边
});
sequelize
.authenticate()
.then(() => {
console.log('Connection has been established successfully.');
})
.catch(err => {
console.error('Unable to connect to the database:', err);
});
使用原生sql操作数据库
exports.getTableDataBySql = function (sql, cb) {
DbConn
.query(sql, {type: DbConn.QueryTypes.SELECT})
.then(function (result) {
cb(null, result)
})
.catch(err => {
cb(err)
});
}