nodejs使用Sequelize框架操作数据库的实现


Posted in NodeJs onOctober 21, 2020

sequelize.define

使用该方法可以定义model,例子如下:

const Sequelize = require('sequelize');

var sequelize = new Sequelize(config.database, config.username, config.password, {
 host: config.host,
 dialect: 'mysql',
 pool: {
  max: 5,
  min: 0,
  idle: 30000
 }
});

var Website = sequelize.define('website', {
 id: {
  type: Sequelize.BIGINT,
  primaryKey: true,
  autoIncrement: true
 },
 url: Sequelize.STRING(255),
 title: Sequelize.STRING(255),
 status: Sequelize.INTEGER,
 delete_mark: Sequelize.BOOLEAN
}, {
 timestamps: false
});

该方法传入的第一个参数是数据表的单数形式,怎么理解呢?例如这里传入的是website其实是模型名,数据表默认是websites这样的复数形式,这种约定我在Laravel中也碰见过,

也就是常说的,约定大于定义,也就是说,如果我们都按照约定的规范去开发,那么效率其实比重新定义,要高很多。

那么,定义好了模型,该怎么进行使用呢?

(async () => {
 let demo = await Website.create({
  url:'http://www.xxxx.com/',
  title:'demo'
 });
 console.log(demo);
})();

继承Model

const {Sequelize, DataTypes, Model} = require('sequelize');
const config = require('../config');

const sequelize = new Sequelize(config.database, config.username, config.password, {
 host: config.host,
 dialect: 'mysql',
 pool: {
  max: 5,
  min: 0,
  idle: 30000
 }
});

/**
 * @author chaojilaji
 * 数据表websites的关系对象映射
 */
class WebSite extends Model {

}

WebSite.init({
 id: {
  type: Sequelize.BIGINT,
  primaryKey: true,
  autoIncrement: true
 },
 url: Sequelize.STRING(255),
 title: Sequelize.STRING(255),
 status: Sequelize.INTEGER,
 delete_mark: Sequelize.BOOLEAN
}, {
 sequelize,
 modelName: 'Website',
 timestamps:false
});

(async () => {
 await sequelize.sync();
 let x = await WebSite.create({
  url: 'http://www.xxxxxxxx.com/',
  title: 'demo2'
 });
 console.log(x);
})();

module.exports = WebSite;

我比较推荐使用继承Model这种方式,通过创建一个class,这样可以使用model.exports=模块名的方式,将该模型封装起来。供别的地方使用,只需要require进去即可。

具体如何对数据表进行操作,就比较简单了,只需要参考API即可。 sequelize文档地址

到此这篇关于nodejs使用Sequelize框架操作数据库的实现的文章就介绍到这了,更多相关nodejs Sequelize操作数据库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

NodeJs 相关文章推荐
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
Nov 20 NodeJs
nodejs URL模块操作URL相关方法介绍
Mar 03 NodeJs
nodejs中的fiber(纤程)库详解
Mar 24 NodeJs
Windows系统下使用Sublime搭建nodejs环境
Apr 13 NodeJs
基于html5和nodejs相结合实现websocket即使通讯
Nov 19 NodeJs
Nodejs的express使用教程
Nov 23 NodeJs
nodejs开发——express路由与中间件
Mar 24 NodeJs
nodejs学习笔记之路由
Mar 27 NodeJs
nodejs入门教程一:概念与用法简介
Apr 24 NodeJs
nodejs判断文件、文件夹是否存在及删除的方法
Nov 10 NodeJs
基于nodejs实现微信支付功能
Dec 20 NodeJs
分享node.js实现简单登录注册的具体代码
Apr 26 NodeJs
用Nodejs实现在终端中炒股的实现
Oct 18 #NodeJs
Nodejs在局域网配置https访问的实现方法
Oct 17 #NodeJs
NodeJS开发人员常见五个错误理解
Oct 14 #NodeJs
浅谈vue websocket nodeJS 进行实时通信踩到的坑
Sep 22 #NodeJs
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
Aug 20 #NodeJs
浅谈使用nodejs搭建web服务器的过程
Jul 20 #NodeJs
通过实例了解Nodejs模块系统及require机制
Jul 16 #NodeJs
You might like
SONY SRF-40W电路分析
2021/03/02 无线电
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
学习php设计模式 php实现观察者模式(Observer)
2015/12/09 PHP
浅析Yii2 GridView实现下拉搜索教程
2016/04/22 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
Javascript 构造函数 实例分析
2008/11/26 Javascript
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
javascript 中的继承实例详解
2017/05/05 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
详解Django通用视图中的函数包装
2015/07/21 Python
如何使用VSCode愉快的写Python于调试配置步骤
2018/04/06 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
python代码实现逻辑回归logistic原理
2019/08/07 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
Python类型转换的魔术方法详解
2020/12/23 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
旅游饭店管理专业自荐书
2014/06/28 职场文书
先进事迹演讲稿
2014/09/01 职场文书
2014年学习部工作总结
2014/11/12 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
Java 写一个简单的图书管理系统
2022/04/26 Java/Android