1、定义model

形式如下:

module.export=(sequelize)=> {

class ModelName extends Model {

}

ModelName.init({}, {});

}

module.exports = (sequelize) => {class User extends Model {/*** Create association between models* @param models the database models*/static associate (models) {User._models = modelsUser.hasMany(models.Opportunity, { foreignKey: 'ownerId', as: 'owners' })User.hasMany(models.DiscussionPost, { foreignKey: 'authorId', as: 'posts' })}/*** Get entity by id* @param id the entity id* @returns the User instance*/static async findById (id) {const criteria = {where: {id}}const entity = await User.findOne(criteria)if (!entity) {throw new errors.NotFoundError(`id: ${id} "User" doesn't exists.`)}return { id: entity.id, name: entity.name, profilePic: entity.profilePicture }}/*** Get entity by name* @param name the entity name* @returns the User instance*/static async findByName (name) {const criteria = {where: {name}}const entity = await User.findOne(criteria)if (!entity) {throw new errors.NotFoundError(`name: ${name} "User" doesn't exists.`)}return { id: entity.id, name: entity.name, profilePic: entity.profilePicture }}/*** Get entity by name* @param oktaUsername the entity oktaUsername* @returns the User instance*/static async findByOktaName (oktaUsername) {const criteria = {where: {oktaUsername}}const entity = await User.findOne(criteria)if (!entity) {throw new errors.NotFoundError(`oktaUsername: ${oktaUsername} "User" doesn't exists.`)}return { id: entity.id, name: entity.name, profilePic: entity.profilePicture }}}User.init({id: {type: Sequelize.INTEGER,primaryKey: true,allowNull: false},name: {type: Sequelize.STRING(128),allowNull: false},profilePicture: {field: 'profile_picture',type: Sequelize.STRING(128),allowNull: false},oktaUsername: {field: 'okta_username',type: Sequelize.STRING(45),allowNull: false}},{schema: config.DB_SCHEMA_NAME,sequelize,timestamps: false,tableName: 'user'})return User
}

2、管理多个Model

通过读取当前目录下的model文件,注册到模式管理器中

const fs = require('fs')
const path = require('path')const Sequelize = require('sequelize')
const config = require('config')const basename = path.basename(module.filename)
const db = {}
const sequelize = new Sequelize(config.DB_DATABASE, config.DB_USERNAME, config.DB_PASSWORD, {host: config.DB_HOST,dialect: config.DB_DIALECT,port: config.DB_PORT,logging: config.DB_LOGGING
})fs.readdirSync(__dirname).filter(file => (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js')).forEach((file) => {const model = require(path.join(__dirname, file))(sequelize)db[model.name] = model})Object.keys(db).forEach((modelName) => {if (db[modelName].associate) {db[modelName].associate(db)}
})db.sequelize = sequelize
db.Sequelize = Sequelizemodule.exports = db

sequelize的应用相关推荐

  1. 在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查

    Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用JavaScript开发并且能够用在Node.JS环境中,易于使用,支持多SQL方言(dialect),.它当前支持M ...

  2. Sequelize 4.43.0 发布,基于 Nodejs 的异步 ORM 框架

    Sequelize 4.43.0 发布了,Sequelize 是一款基于 Nodejs 的异步 ORM 框架,它同时支持 PostgreSQL.MySQL.SQLite 和 MSSQL 多种数据库,很 ...

  3. 【node】Sequelize常用操作、基本增删改查

    [node]Sequelize常用操作.基本增删改查 sequelize初始化 先初始化一个数据库实例 再初始化一个model实例 sequelize的数据类型 基本增删改查的写法 SELECT * ...

  4. sequelize 增加数据库字段_使用Sequelize动态创建新表

    我正在实施将数据保存到数据库的nodejs应用程序.应用程序从/ add接收post请求,它应该采用两个参数(实际数据和表名).所有表都将包含在模型文件中定义的相同字段和数据类型. 表名称表示将保存数 ...

  5. egg mysql 连表查询_Egg中使用Sequelize框架关联查询Mysql数据库

    Sequelize视频教程_Eggjs仿小米商城企业级Nodejs项目实战视频教程: https://www.itying.com/goods-941.html 一.Sequelize简介 前面的章节 ...

  6. mysql存储过程queue_mysql – 在Sequelize中调用输入/输出类型存储过程

    我在 MySQL中创建了一个存储过程,它期望一些输入并返回一些输出. 要在MySQL中调用存储过程,我正在运行 CALL createCoupon(1236,321, @message); SELEC ...

  7. Sequelize框架

    1.创建架构 async createSchema(schema:string, options:object):Promise 用于创建数据库架构.此架构来自于postgres中的,不是数据表,在m ...

  8. mysql 主键 uniqo_项目总结,彻底掌握NodeJS中如何使用Sequelize

    前言 sequelize是什么? sequelize是基于NodeJs的ORM框架,它适用于不同的数据库,如:Postgres.MySQL.SQLite.MariaDB,我们可以通过sequelize ...

  9. sequelize 连接2个数据库_数据库激荡 40 年,NoSQL、NewSQL谁能接棒?

    起初有文件,后来有基于结构化文件的导航数据库,然后出现了IMS和CODASYL.大概40年前,出现了首批关系数据库.在20世纪八.九十年代的大部分时间,"数据库"严格意义上指&qu ...

最新文章

  1. nginx服务器安全,要注意的地方
  2. python string/list转换
  3. ccf a类会议_ISCA#39;21截稿在即,阿里或成为国内在该会议上的最大赢家!
  4. 我的Go+语言初体验--Go+之环境安装与程序编码初体验
  5. pytorch 训练face出现的问题
  6. 禁用linux的密码策略
  7. wavecn 2.0.0.5 正式版_iOS12.1.4正式版更新了什么 苹果iOS12.1.4新特性与升降级全攻略...
  8. 微信公众号支付 java_微信支付之公众号支付(java实现)
  9. 电动滑板车出口欧洲和北美认证要求
  10. Python:合成图片
  11. 页面布局中遇到菱形图片时的处理办法
  12. CentOS 7查看源代码
  13. 影集制作php源码_php 源码编译
  14. 单片机c语言条件语句,单片机c语言教程:C51复合语句和条件语句
  15. 【mysql】位运算符
  16. 京东商品SKU数据采集方法
  17. MRP(物料需求计划)
  18. Android手机文件及文件夹目录详解
  19. CorelDRAW怎么调整字间距
  20. 惊呼!一枚程序缓,竟能开发出如此劲爆的僵尸游戏!

热门文章

  1. /proc/sys/vm/ 内存参数
  2. 当PullToRefreshScrollView里面嵌套ListView
  3. SetWindowRgn注意点
  4. python画三维几何图-Python下opencv使用笔记(二)(简单几何图像绘制)
  5. python循环语句-python----循环语句及循环控制语句
  6. python turtle循环图案-Python内置模块turtle绘图详解
  7. python画散点图分布-python画图汇总(持续更新)
  8. python到底能用来做啥-Python可以被用来做哪些神奇好玩的事情?
  9. python画图颜色-python中matplotlib的颜色及线条控制的示例
  10. python装饰器函数-Python精进-装饰器与函数对象