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之请求路由概述
Jul 05 NodeJs
nodejs中转换URL字符串与查询字符串详解
Nov 26 NodeJs
用NodeJS实现批量查询地理位置的经纬度接口
Aug 16 NodeJs
详解NodeJs支付宝移动支付签名及验签
Jan 06 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
windows 下安装nodejs 环境变量设置
Feb 02 NodeJs
详解nodejs中exports和module.exports的区别
Feb 17 NodeJs
nodejs 子进程正确的打开方式
Jul 03 NodeJs
nodejs开发微信小程序实现密码加密
Jul 11 NodeJs
nodejs body-parser 解析post数据实例
Jul 26 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 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函数utf8转gb2312编码
2006/12/21 PHP
php中目录,文件操作详谈
2007/03/19 PHP
PHP 数字左侧自动补0
2008/03/31 PHP
php强制用户转向www域名的方法
2015/06/19 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
JS获取鼠标坐标的实例方法
2013/07/18 Javascript
DOM基础教程之模型中的模型节点
2015/01/19 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
nodejs个人博客开发第六步 数据分页
2017/04/12 NodeJs
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
Python threading多线程编程实例
2014/09/18 Python
Python编程中的异常处理教程
2015/08/21 Python
使用pandas对两个dataframe进行join的实例
2018/06/08 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
解决python3运行selenium下HTMLTestRunner报错的问题
2018/12/27 Python
解决django FileFIELD的编码问题
2020/03/30 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
Gap加拿大官网:Gap Canada
2017/08/24 全球购物
英国领先的在线高尔夫设备零售商:Golfgeardirect
2020/12/11 全球购物
Structs界面控制层技术
2013/10/11 面试题
硕士研究生自我鉴定
2013/11/08 职场文书
医学专业职业生涯规划范文
2014/02/05 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
最新大学生创业计划书写作攻略
2014/04/02 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
升学宴家长致辞
2015/07/27 职场文书
MySQL系列之开篇 MySQL关系型数据库基础概念
2021/07/02 MySQL