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中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
nodejs事件的监听与触发的理解分析
Feb 12 NodeJs
详解nodejs 文本操作模块-fs模块(五)
Dec 23 NodeJs
详解nodejs中exports和module.exports的区别
Feb 17 NodeJs
Nodejs多站点切换Htpps协议详解及简单实例
Feb 23 NodeJs
深入nodejs中流(stream)的理解
Mar 27 NodeJs
Nodejs读取文件时相对路径的正确写法(使用fs模块)
Apr 27 NodeJs
Windows下快速搭建NodeJS本地服务器的步骤
Aug 09 NodeJs
详解Nodejs 通过 fs.createWriteStream 保存文件
Oct 10 NodeJs
nodejs调取微信收货地址的方法
Dec 20 NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 NodeJs
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
Nov 18 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生成静态HTML文档的原理
2012/10/29 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
2013/06/26 PHP
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
PHP APC缓存配置、使用详解
2014/03/06 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
js获取RadioButtonList的Value/Text及选中值等信息实现代码
2013/03/05 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
js中substring和substr的详细介绍与用法
2013/08/29 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
用jmSlip编写移动端顶部日历选择控件
2016/10/24 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
Postman内建变量常用方法实例解析
2020/07/28 Javascript
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
Python发送Email方法实例
2014/08/21 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
美国修容界大佬创建的个人美妆品牌:Kevyn Aucoin Beauty
2018/12/12 全球购物
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
中学教师教育感言
2014/02/21 职场文书
慰问信范文
2015/02/14 职场文书
投诉信范文
2015/07/02 职场文书
CSS3 制作的悬停缩放特效
2021/04/13 HTML / CSS
golang http使用踩过的坑与填坑指南
2021/04/27 Golang
Golang 入门 之url 包
2022/05/04 Golang