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与Mysql的交互示例代码
Aug 18 NodeJs
NodeJs中的VM模块详解
May 06 NodeJs
nodejs实现遍历文件夹并统计文件大小
May 28 NodeJs
NodeJS创建基础应用并应用模板引擎
Apr 12 NodeJs
NodeJS自定义模块写法(详解)
Jun 27 NodeJs
nodeJs爬虫的技术点总结
May 13 NodeJs
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
May 15 NodeJs
nodejs高大上的部署方式(PM2)
Sep 11 NodeJs
nodejs基础之常用工具模块util用法分析
Dec 26 NodeJs
Nodejs中的require函数的具体使用方法
Apr 02 NodeJs
nodejs中实现用户注册路由功能
May 20 NodeJs
在NodeJs中使用node-schedule增加定时器任务的方法
Jun 08 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
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
Ajax PHP分页演示
2007/01/02 PHP
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
2014/06/26 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
利用PHP生成静态html页面的原理
2016/09/30 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
javascript hashtable实现代码
2009/10/13 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
2017/08/16 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
[42:36]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第二局
2016/02/26 DOTA
详解python中字典的循环遍历的两种方式
2017/02/07 Python
Python机器学习之决策树算法实例详解
2017/12/06 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
python输入多行字符串的方法总结
2019/07/02 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
Django使用django-simple-captcha做验证码的实现示例
2021/01/07 Python
京东国际站:JOYBUY
2017/11/23 全球购物
银行毕业实习自我鉴定
2013/09/19 职场文书
服装公司总经理岗位职责
2013/11/30 职场文书
教师工作总结范文2014
2014/11/10 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS