nodejs使用Sequelize框架操作数据库的实现

 更新时间:2020年10月21日 08:27:41   作者:chaojilaji  
这篇文章主要介绍了nodejs使用Sequelize框架操作数据库的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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操作数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Node.js中Swagger的使用指南详解

    Node.js中Swagger的使用指南详解

    Swagger(目前用OpenAPI Specification代替)是一个用于设计、构建、记录和使用REST API的强大工具,本文将探讨使用Swagger的一些关键技巧,需要的可以参考一下
    2024-01-01
  • IDEA中配置运行node.js的完整过程

    IDEA中配置运行node.js的完整过程

    为了使在终端使用npm,我们可以配置环境变量,这篇文章主要给大家介绍了关于IDEA中配置运行node.js的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • Node.js Domain 模块实例详解

    Node.js Domain 模块实例详解

    这篇文章主要介绍了Node.js Domain 模块实例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • 基于 Docker 开发 NodeJS 应用

    基于 Docker 开发 NodeJS 应用

    这是两篇文章的第一篇。本文涵盖了有关在使用 Express 框架开发一个Node应用时,用Docker 替代 Vagrant 的比较详细的教程, 应用将使用 connect-redis 中间件将会话信息持久化到Redis中. 第二篇文章将介绍到将这个开发的设置产品化.
    2014-07-07
  • 使用NodeJS 5分钟 连接 Redis 读写操作的详细过程

    使用NodeJS 5分钟 连接 Redis 读写操作的详细过程

    这篇文章主要介绍了NodeJS 5分钟 连接 Redis 读写操作,本文给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • 解决nodejs的npm命令无反应的问题

    解决nodejs的npm命令无反应的问题

    今天小编就为大家分享一篇解决nodejs的npm命令无反应的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • node.js增删改查保姆级教程方法

    node.js增删改查保姆级教程方法

    这篇文章主要给大家介绍了关于node.js增删改查保姆级教程的相关资料,node.js接口可以实现增加、删除、修改和查询操作,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • 命令行批量截图Node脚本示例代码

    命令行批量截图Node脚本示例代码

    这篇文章主要给大家介绍了关于命令行批量截图Node脚本的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-01-01
  • Node ORM项目中使用Sequelize实例详解

    Node ORM项目中使用Sequelize实例详解

    这篇文章主要为大家介绍了Node ORM项目中使用Sequelize实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • 详解node.js的http模块实例演示

    详解node.js的http模块实例演示

    这篇文章主要介绍了详解node.js的http模块实例演示,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07

最新评论