美文网首页
koa中使用Sequelize

koa中使用Sequelize

作者: 随风飞2019 | 来源:发表于2020-02-03 22:10 被阅读0次

首先安装npm install --save sequelize
还需要安装对应的数据库驱动npm install --save mysql2

1. 首先新建一个config.js,用于保存各种配置信息,数据库信息只是其中一部分
module.exports = {
    db:{
        dbName:"***",
        userName:"***",
        password:"***",
        host: "***"
    }
 }
2. 新建一个db.js,数据库的公用连接文件,公共配置文件
const Sequelize = require("sequelize");
const {dbName,userName,password,host} = require("../utils/config.js").db
const db = new Sequelize(dbName, userName, password, {
  host,
  dialect: "mysql",
  logging:false  //nodemon里面不显示原始查询语句
});
module.exports = {db}
3. 新建一个模型文件user.js,并导出,后面所有操作都基于这个模型文件
第一种写法,推荐使用
const { db } = require("../utils/db");
//引入db创建的数据库连接实例,下面sequelize:db,db.define用到了
const Sequelize = require("sequelize");
const User = db.define( "user",
  {
    id: {
      type: Sequelize.INTEGER,
      autoIncrement: true,
      primaryKey: true
    },
    name: {
      type: Sequelize.STRING,
      allowNull: false
    }
  },
  {
    sequelize:db,
    timestamps: false,//禁用时间戳
    tableName: "user",//明确定义表名
  }
);
module.exports = { User };


第二种写法,使用类的写法,不太习惯使用
const { db } = require("../utils/db");
const { Sequelize, Model } = require("sequelize");
//从sequelize中引入Sequelize, Model模块
class User extends Model {};//及下面都是固定写法
User.init(
  {
    id: {
      type: Sequelize.INTEGER,
      autoIncrement: true,
      primaryKey: true
    },
    name: {
      type: Sequelize.STRING,
      allowNull: false
    }
  },
  {
    sequelize:db,
    timestamps: false,//禁用时间戳
    tableName: "user",//明确定义表名
  }
);
module.exports = { User };
4. 在路由中引入模型并使用
const router = require("koa-router")();
router.prefix("/api/users");
const {User} = require("../models/user.js")
router.post("/", async (ctx, next) => {
  let res = await User.create(ctx.request.body);
  ctx.body = {
    code: 200,
    msg: "添加成功",
    res: res
  };
});
module.exports = router;

5. 最后就是前端使用接口了
rowSave(row, done, loading) {
      this.$http.post("/users", row).then(res => {
        loading();
        successMsg(res);
        this.getTableData();
        done();
      });
    }

相关文章

网友评论

      本文标题:koa中使用Sequelize

      本文链接:https://www.haomeiwen.com/subject/yctlxhtx.html