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教程 安装express及配置app.js文件的详细步骤
May 11 NodeJs
nodejs实现遍历文件夹并统计文件大小
May 28 NodeJs
NodeJS的Promise的用法解析
May 05 NodeJs
NodeJS仿WebApi路由示例
Feb 28 NodeJs
简单好用的nodejs 爬虫框架分享
Mar 26 NodeJs
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
Mar 28 NodeJs
windows系统下更新nodejs版本的方案
Nov 24 NodeJs
nodejs实现简单的gulp打包
Dec 21 NodeJs
nodejs中密码加密处理操作详解
Mar 20 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
nodejs更新package.json中的dependencies依赖到最新版本的方法
Oct 10 NodeJs
NodeJS 文件夹拷贝以及删除功能
Sep 03 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面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
php如何调用webservice应用介绍
2012/11/24 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
thinkPHP框架中执行事务的方法示例
2018/05/31 PHP
让您的菜单不离网站
2006/10/03 Javascript
基于jQuery的表格操作插件
2010/04/22 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
Angular的$http与$location
2016/12/26 Javascript
js实现瀑布流效果(自动生成新的内容)
2017/03/16 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
Angular.Js之Scope作用域的学习教程
2017/04/27 Javascript
layui文件上传实现代码
2017/05/20 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
Python 2.7.x 和 3.x 版本的重要区别小结
2014/11/28 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
详解python with 上下文管理器
2020/09/02 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
员工年终演讲稿
2014/01/03 职场文书
自行车广告词大全
2014/03/21 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
物业品质提升方案
2014/06/08 职场文书
私人委托书格式
2014/09/10 职场文书
总经理2015中秋节致辞
2015/07/29 职场文书
幼儿园卫生保健制度
2015/08/05 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书