ORM DB for nodejs--sequelize

ORM DB for nodejs–sequelize

  • sequelize是什么
  • sequelize怎么用
  • sequelize扫坑
    1.sequelize是什么
    sequelize是一个nodejs的第三方库,使用它可以把数据库当做像对象一样使用(ORM)。它支持多个数据库:PostgreSQL, MySQL, MariaDB, SQLite 以及 MSSQL。
    2.sequelize怎么用
    我用Intellij IDEA 14.0.2作为我的开发工具,mysql作为我的数据库,在win10系统下进行开发调试。创建我的nodejs工程后
    1)安装数据库。
    sequelize只负责创建连接,增删改查,具体使用哪种数据库由我们自己决定。我下载的是mysql-installer-community-5.7.9.1.msi,按照提示一步步安装即可。
    2)安装sequelize.
npm install --save sequelize
npm install --save mysql

3)创建连接
我本来想用程序自动创建数据库和表,找半天没有相应的接口。应该是不可以。所以需要手动创建数据库。
创建连接:

var Sequelize = require('sequelize');
var sequelize = new Sequelize('myDataBaseName', 'myUsername', 'password');

4)创建表结构
sequelize把表结构叫做模型,例如想创建一个名为User的表,包含两列:username和birthday,数据类型分别为string和date

定义表结构

var User = sequelize.define('User', {
  username: Sequelize.STRING,
  birthday: Sequelize.DATE
});

创建

User.sync()

创建表User,如果已存在,先drop再创建:

User.sync({force: true});

也可以为每列指定多个属性,例如设置username不能为空,birthday默认值为0

var User = sequelize.define('User', {
  username: {
      type:Sequelize.STRING,
      allowNull:false
      }   
  birthday: {
      type:Sequelize.DATE,
      defaultValue:0
      }
});

其他详细配置,参考官方文档—>http://sequelize.readthedocs.org/en/latest/

5)进行增删改查。

这里涉及到sequelize的核心功能promise模型,笔者能力有限不进行详述了,自己领悟吧。
insert:

User.create({
            username:'Lilei',
            birthday:new Date(1980, 6, 20)
        });

query:找出所有名为Lilei的人,并按照classname进行合并显示

  User.findAll({
    attributes: ['usrname', 'birthday'],
    where:{'username':'Lilei'},
    group:['classname']
  }).then(function(user){
    console.log(user);
  });

3.sequelize扫坑
1)log输出:
数据库操作日志默认输出到控制台,如果不想输出,可在创建连接时设置:

var sequelize=new Sequelize('test','root','123456',{
    logging:false
});

2)时区设置:
数据查询后发现时间不对,数据库里的时间(创建表时自动增加两列createdAt和updatedAt)与本地相差8小时。修改如下:

var sequelize=new Sequelize('test','root','123456',{
    logging:console.log,
    timezone:'+08:00'
});
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值