apis-scf-nodejs
Version:
Apis Serverless Compute Function NodeJS Package
102 lines (96 loc) • 3.02 kB
JavaScript
//
const Sequelize = require( 'sequelize' );
//
const Apis = require( 'apis-core-nodejs' );
//配置
let _default_config = {
// 数据库类型
dialect : 'mysql',
// 数据库选项,配置证书等
dialectOptions : {
// 数据库字段float等类型,输出精度,false转string,true不转换但精度有问题。
decimalNumbers : false
},
// 读写分离
replication : {
write : {
host : '127.0.0.1',
port : 1027,
database : 'db_name',
username : 'root',
password : ''
},
read : [
{
host : '127.0.0.1',
port : 1027,
database : 'db_name',
username : 'root',
password : ''
},
{
host : '127.0.0.1',
port : 1027,
database : 'db_name',
username : 'root',
password : ''
}
]
},
pool : {
// 连接池中最大连接数量
max : 20,
// 连接池中最小连接数量
min : 1,
// 建立连接最长时间(毫秒)
acquire : 15000,
// 如果一个线程N(毫秒)钟内没有被使用过的话,那么就释放线程
idle : 15000
},
logging : function( str )
{
// 截取其中的sql语句
let _sql = str.substring( 21, str.length );
if( CONFIG[ 'Base' ].log.enable === true )
{
Apis.Utils.Base.log( _sql, 'Logging SQL' );
}
},
logQueryParameters : true,
timezone : '+08:00',
define : {
// 禁止sequelize修改表名,默认会在animal后边添加一个字母`s`表示复数
freezeTableName : true,
// 禁止自动添加时间戳相关属性
timestamps : false,
// 软删除 只在启用 timestamps 时适用
paranoid : false,
// 不使用驼峰式命令规则,这样会在使用下划线分隔,这样 updatedAt 的字段名会是 updated_at
underscored : true,
// 指定字段名
createdAt : 'create_time',
// 指定字段名
updatedAt : 'update_time',
// 指定字段名
deletedAt : 'delete_time'
}
};
//合并覆盖
_default_config = Object.assign( _default_config, CONFIG[ 'Base' ].database );
//连接
const sequelize = new Sequelize( _default_config.replication.write.database, null, null, _default_config );
//验证
/*(async () =>
{
await sequelize.authenticate()
.then( () =>
{
console.log( '数据库连接成功' );
} )
.catch( err =>
{
console.error( err );
throw new Error( err.message );
} );
})();*/
module.exports = sequelize;