Skip to content
youhoc
  • Pages
    • Home
    • Modern App Guidelines
    • Linux
      • Day 1: Linux Distributions & Navigation
      • Day 2: User Management
      • Day 3: File Permission & Ownership
      • Day 4: Package Management
      • Day 5: Services Management
    • Javascript
      • JS The Weird Part
        • Execution Context
        • Types & Operators
        • Objects & Functions
        • Error Handling & Strict Mode
        • Typescript, ES6, Tra
      • Modern JS
        • JS in the Browser
        • Data Storage JSON
        • Modern JS
        • Advanced Objects & Methods
        • Webpack & Babel
        • Async
      • jQuery
        • In-depth Analysis of jQuery
      • React-ready JS
        • Arrow Function
        • Template Literals
        • Logical AND, OR, Ternary, Nullish Operators
        • Destructuring & Rest Operator
        • Array Method
        • Immutability and Spread Operator
        • Promises, Async/Await, Callback
    • PHP
      • gruntJS
      • composer
      • MySQL
    • Docker
      • Container Basics
      • Container Networking
      • Container Image
      • Container Volume & Persistent Data
      • Dockerfile
      • Docker Compose
      • Docker Registry
    • Node.js
      • Installing & Exploring
      • Loading Modules
      • npm - Get Command Input
      • Web Server
        • Express Web Server
        • Template Engine & MVC
      • Authentication
      • 7. Databases
      • 8. Rest API
      • Errors
      • icon picker
        Sequelize
        • Sequelize Transactions: Đảm Bảo Tính Toàn Vẹn Dữ Liệu
        • 7 loại Data Types phổ biến Trong Sequelize
        • Phân Trang (Pagination) Trong Express.js Với Sequelize/MySQL
      • File Upload with Multer, Express.js
      • Hướng dẫn Cơ bản về Rest API
      • Server-Side Validation Với Express-Validator
      • Authentication Trong REST API Với JWT
      • Node-cron Simple to Complex Setup with PM2
      • HTMx Form: Gửi request, nhận response, và swap DOM
    • ReactJS
      • React from Andrew
        • Summary from Next
        • 1. Basics
        • 2. React Components
        • 3. Webpack
        • 4. Styling with SCSS
        • 5. React Router
        • 6. React Hook
      • Modern React From The Beginning
        • Intro to JSX
        • Vite Build Tools
        • Basic Component Creation
        • Component State
        • Props & Component Composition
        • useState with Inputs & Form Submission
        • useEffect, useRef & Local Storage
        • Async / Await and Http Request in React
        • React Router: Declarative Mode
        • ContextAPI
        • React Router: Framework Mode
          • File-routing & HTML Layouts
          • Server-side Data Query
          • Links & Navigation
          • Loaders
    • Typescript
      • Type User vs UserProp
    • Payload CMS
    • Authentication

Data Types


// model.js
// get data type from Sequelize package
const Sequelize = require('sequelize');

// import connection from helpers
const sequelize = require('../helpers/database');

// Article Model
const Article = sequelize.define('article', {
id: {
type: Sequelize.INTEGER, // define type from Sequelize package
autoIncrement: true,
allowNull: false,
primaryKey: true
},
title: {
type: Sequelize.STRING,
allowNull: false
},
slug: {
type: Sequelize.STRING,
allowNull: false
},
content: {
type: Sequelize.TEXT,
allowNull: false
},
featuredImage: {
type: Sequelize.STRING,
allowNull: true
},
status: {
type: Sequelize.STRING,
allowNull: false
}
});

module.exports = Article;
// controller.js

// insert into database
Article.create()

// find all (no need to re-write static fn within the model
Article.findAll()

// find by Id, primary key
Article.findByPk()
const article = await Article.findOne({ where: { id } });
const article = await Article.findOne({ where: { id: uuid } });

// find all & custom
const article = await Article.findAll({ where: { id: uuid } });

// update
// get existing article
const existingArticle = await Article.findByPk(articleId);

// if article exists
if (existingArticle) {
existingArticle.title = title;
existingArticle.content = content;
existingArticle.featuredImage = featuredImage;
// do not change slug, or status or id
// save updated article (with Sequelize instance method)
await existingArticle.save();
console.log('Article saved: ', existingArticle.title);
res.redirect('/list');
}

// delete
// find article by id
articleToDelete = await Article.findByPk(articleId);

if (articleToDelete) {
articleToDelete.destroy();
console.log('Article deleted: ', articleToDelete.title);
res.redirect('/list');
}
All WHERE conditions here:

Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.