使用egg-sequelize插件连接sqlserver的详细步骤

  1. egg官网的sequelize文档中只讲述了连接MySQL的案例,作者也是初学,在连接sqlserver时出现了一些错误,可能是对原sequelize.js没有太多了解,下面展示我的连接过程。

//创建egg基本项目
mkdir egg-project
npm init egg --type=simple
npm install
npm install --save egg-sequelize tedious
  1. 编写代码步骤是跟着egg-sequelize文档来的,有参考了sequelize的文档稍作了修改

图片中标注是接下来需要写代码的地方

  1. 首先配置插件

config/plugin.js

'use strict';

/** @type Egg.EggPlugin */
module.exports = {
  // had enabled by egg
  // static: {
  //   enable: true,
  // }
  sequelize:{
    enable: true,
    package:'egg-sequelize'
  }
};

config/config.default.js

config.sequelize = {
    dialect:'mssql',  //填写要用的数据库类型,sqlserver的填mssql
    database:'userDB',//自己的数据库名
    host:'localhost',//地址
    port:1433,//端口号,默认为1433,如有改动就根据改动的填
    username:'sa',//连接sqlserver的用户名
    password:'123456',//密码
    dialectOptions: { //传统使用mssql的方法只需要写入options属性即可,在sequelize中options属性是在dialectOptions中的,所以这么写才会生效
      options: {
        useUTC: false,
        dateFirst: 1,
        encrypt: false,
      }
    }
  }
  1. 插件配置好后,下面是作者写的一个简单接口,路由为‘/user’的get请求,查询users表中的所有数据

数据表

app/model/user.js

'use strict';

module.exports = (app) => {
  const { STRING, INTEGER} = app.Sequelize;//从sequelize中结构出数据表中对应的字段类型,这里的id和age都是int,name为varchart

  const User = app.model.define('user', {
    id: { type: INTEGER, primaryKey: true, autoIncrement: true },
    name: STRING(30),
    age: INTEGER,
  },
    { timestamps: false } //sequelize默认会自动去对应createAt和updataAt字段(字段名记不清了,大概是这俩),我的这个表中没有这两个字段所以设置timestamps属性为false
  );

  return User;
};

app/controller/user.js

// app/controller/users.js
const Controller = require('egg').Controller;

class UserController extends Controller {
  async index() {
    const ctx = this.ctx;
    ctx.body = await ctx.model.User.findAll();
  }
}

module.exports = UserController;

app/router.js

'use strict';

/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller } = app;
  router.get('/', controller.home.index);
  router.get('/user', controller.user.index);//这是实现的连接sqlserver的接口
};
  1. 运行结果展示

npm run dev
  1. 经验总结

sequelize.js这个使用起来确实很方便,在使用egg本身的egg-sequelize插件时还是要遵循sequelize本身的默认设置,总结起来就是出问题了如果egg没毛病那就多看看sequelize的文档,根据程序的报错找找sequelize是否有对应属性的默认设置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值