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 相关文章推荐
Jquery通过ajax请求NodeJS返回json数据实例
Nov 08 NodeJs
详解nodejs 文本操作模块-fs模块(一)
Dec 22 NodeJs
Highcharts+NodeJS搭建数据可视化平台示例
Jan 01 NodeJs
nodejs学习笔记之路由
Mar 27 NodeJs
NodeJS实现微信公众号关注后自动回复功能
May 31 NodeJs
详解Nodejs之静态资源处理
Jun 05 NodeJs
nodejs发送http请求时遇到404长时间未响应的解决方法
Dec 10 NodeJs
nodeJS进程管理器pm2的使用
Jan 09 NodeJs
NodeJS读取分析Nginx错误日志的方法
May 14 NodeJs
nodejs环境使用Typeorm连接查询Oracle数据
Dec 05 NodeJs
Node.js实现爬取网站图片的示例代码
Apr 04 NodeJs
浅谈Node的内存泄露问题
May 06 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
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
2014/05/10 PHP
php+mysqli使用面向对象方式更新数据库实例
2015/01/29 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
2019/03/01 PHP
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
Js操作Select大全(取值、设置选中等等)
2013/10/29 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
2015/02/03 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
javascript中基本类型和引用类型的区别分析
2015/05/12 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
JavaScript错误处理和堆栈追踪详解
2017/04/18 Javascript
jQuery plugin animsition使用小结
2017/09/14 jQuery
react-native android状态栏的实现
2018/06/15 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
介绍Python的Django框架中的QuerySets
2015/04/20 Python
Python实现程序的单一实例用法分析
2015/06/03 Python
python实现彩票系统
2020/06/28 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
python定时任务 sched模块用法实例
2019/11/04 Python
python之列表推导式的用法
2019/11/29 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
机械设计毕业生自荐信
2014/02/02 职场文书
集中整治工作方案
2014/05/01 职场文书
钳工实训报告总结
2014/11/04 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
军训决心书范文
2015/09/22 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
HTML基础详解(下)
2021/10/16 HTML / CSS