使用Node.js连接数据库的话到时候更新,先更新sequelize这个框架,轻量级很舒服!
当然ThinkORM挺舒服的,缺点就是挺重量级适合企业级项目 +_+。
Sequelize 是一个基于 promise 的 Node.js ORM, 目前支持 Postgres, MySQL, MariaDB, SQLite 以及 Microsoft SQL Server. 它具有强大的事务支持, 关联关系, 预读和延迟加载,读取复制等功能。
安装
# 使用 npm
npm i sequelize # 这将安装最新版本的 Sequelize
# 使用 yarn
yarn add sequelize
配置
config.js
module.exports = {
DB : {
host : '127.0.0.1', // 服务器地址
port : 3306, // 数据库端口号
username: 'root', // 数据库用户名
password: 'wuju', // 数据库密码
database: 'test', // 数据库名称
prefix: '' // 数据库前缀
}
}
db/connect.js
const { Sequelize } = require('sequelize');
const config = require('../../config');
var sequelize;
// 测试连接
try {
sequelize = new Sequelize(config['DB'].database,
config['DB'].username,
config['DB'].password, {
host: config['DB'].host,
dialect: 'mysql',
// logging: false, // 取消日志
});
console.log('数据库连接成功');
} catch (error) {
console.error('数据库连接失败,异常信息:', error);
}
module.exports = sequelize;
编写model
const { DataTypes } = require('sequelize');
const sequelize = require('../../db/connect');
const User = sequelize.define('u', {
id: {
type: DataTypes.INTEGER, // 类型
primaryKey: true // 键
},
username: {
type: DataTypes.STRING,
field: 'username'
},
password : {
type: DataTypes.STRING,
field: 'password'
},
email : {
type: DataTypes.STRING,
field: 'email'
},
nickname : {
type: DataTypes.STRING,
field: 'nickname'
},
token : {
type: DataTypes.STRING,
field: 'token'
},
cTime : {
type: DataTypes.INTEGER,
field: 'token'
}
},{
// 表名
tableName: 'i_users',
timestamps: false // 不添加时间字段
});
module.exports = User;
使用
const models = require('../app/user/models');
class User {
static async find(query) {
let ret = await models.findOne({
where: {
...query
}
});
return JSON.parse(JSON.stringify(ret));
}
static async add(query) {
return await models.create({
username : query.username,
password : query.password,
nickname : query.nickname,
token : 'AAAAAAAAAAAAAA',
cTime : Date.now()
})
}
}
module.exports = User;
末尾
- sequelize 在线文档:阅读