node.js + koa2 + sequelize get/post请求

本文档展示了如何使用Sequelize库连接到MySQL数据库,并进行POST和GET请求之前的准备工作。首先,配置Sequelize实例,包括数据库名、用户名、密码和其他连接参数。然后,通过Sequelize实例进行事务操作,创建和查询数据库记录。示例中并未实现token验证,提供了发送邮件的示例路径。最后,附上了Sequelize的官方文档链接。
摘要由CSDN通过智能技术生成

使用之前,需要创建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请求之前,需要查看两个位置

  1. 查看是否有token验证
  2. 查看访问路径

在这里我没有做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/

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值