使用之前,需要创建sequelize实例 => 连接数据库
var config = require('../config');
const Sequelize = require('sequelize');
const othLog = require('log4js').getLogger('oth');
console.log(config.dbhost, config.dbusername, config.dbpwd)
//数据库、用户名、密码
const sequelize = new Sequelize(config.dbdatabase, config.dbusername, config.dbpwd, {
host: config.dbhost,
port:config.dbport,
// 数据库类型:postgres, mysql, sqlite
dialect: 'mysql',
// logging: false,
// operatorsAliases: false,
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
timezone: '+08:00' -- 这里是为了保证系统时间和数据库时间相同
})
sequelize.authenticate().then(() => {
console.log('mysql 连接成功......');
})
.catch(err => {
console.error('链接失败:', err);
});
module.exports = sequelize
get/post请求之前,需要查看两个位置
- 查看是否有token验证
- 查看访问路径
在这里我没有做token验证,路径为 /serve/send
const SequelizeInstance = require('db');
const Test = require('test')(SequelizeInstance, DataTypes);//实体
const Router = require('koa-router');
let router = new Router();
router.post('/send', async (ctx: Koa.Context, next: Koa.Next) => {
let request: any = ctx.request.body;
let result = false,message = "success";
//开启事务
result = await SequelizeInstance.transaction(async t => {
let result = await Test.create({email:request.email}, { transaction: t });
//新建
await Email.create({
emailTo: request.email,
createDate: getDateTimeStr(),
}, { transaction: t });
return true;
});
if(!result){
errLog.error("Network error.");
message = "Network error.";
ctx.body = {
data: result,
msg:message,
code:500
};
}else{
ctx.body = {
data: result,
msg:message,
code:200
};
}
return;
})
在这里我没有做token验证,路径为 /serve/find
router.get("/find", async (ctx: Koa.Context, next: Koa.Next) => {
let n: string = ctx.query.n;
//查找一个对象
const test = await Test.findOne({where: {id: n}});
if(test != null){
//对象不为空的操作
}else{
//对象对空的操作
}
})
页面请求可以直接使用ajax即可。
附上sequelize官方文档: https://www.sequelize.com.cn/