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的前后端分离的思考与实践(二)模版探索
Sep 26 NodeJs
NodeJS学习笔记之Http模块
Jan 13 NodeJs
基于nodejs+express(4.x+)实现文件上传功能
Nov 23 NodeJs
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
Jul 26 NodeJs
Nodejs多站点切换Htpps协议详解及简单实例
Feb 23 NodeJs
搭建简单的nodejs http服务器详解
Mar 09 NodeJs
3分钟快速搭建nodejs本地服务器方法运行测试html/js
Apr 01 NodeJs
Nodejs+express+ejs简单使用实例代码
Sep 18 NodeJs
nodejs实现OAuth2.0授权服务认证
Dec 27 NodeJs
nodejs 使用http进行post或get请求的实例(携带cookie)
Jan 03 NodeJs
nodejs使用socket5进行代理请求的实现
Feb 21 NodeJs
用Nodejs实现在终端中炒股的实现
Oct 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 inc文件使用的风险和注意事项
2013/11/12 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
2016/12/13 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
2018/11/25 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
layui 表格操作列按钮动态显示的实现方法
2019/09/06 Javascript
详解小程序如何动态绑定点击的执行方法
2019/11/26 Javascript
python操作mysql中文显示乱码的解决方法
2014/10/11 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
python中的itertools的使用详解
2020/01/13 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
2020/06/28 Python
pycharm如何设置官方中文(如何汉化)
2020/12/29 Python
CSS3弹性盒模型flex box快速入门心得(必看篇)
2016/05/24 HTML / CSS
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
工业设计专业个人求职信范文
2013/12/28 职场文书
离婚协议书范本2014
2014/10/27 职场文书
会议欢迎词
2015/01/23 职场文书
工程催款通知书
2015/04/17 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
2019年手机市场的调研报告2篇
2019/10/10 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS
PyTorch中的torch.cat简单介绍
2022/03/17 Python
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android