Node.js ORM詳解

一、什麼是ORM

ORM(Object Relational Mapping)對象關係映射,是一種將面向對象語言程序中的對象自動持久化到關係型數據庫中的技術。

ORM可以讓程序員使用面向對象的編程方式操作數據庫,屏蔽掉底層數據庫的許多複雜操作。ORM框架對於開發者來說,降低了開發難度和維護成本,提高了代碼的可讀性和可維護性。

二、Node.js中ORM的應用場景

ORM在Node.js中的應用場景主要包括:

1、數據庫的增刪改查操作;

2、將數據轉化為對象,方便操作;

3、使用js語言操作關係型數據庫,不需要寫複雜的SQL語句;

4、屏蔽底層數據庫依賴,同時提高了代碼的可移植性。

三、Node.js ORM模塊

Node.js中常用的ORM框架有很多,比如Sequelize、TypeORM、Bookshelf、Waterline等,而在這裡我們關注一個基於Sequelize開發的ORM模塊:sequelize。

四、使用sequelize操作MySQL數據庫(示例)

//引入 sequelize
const Sequelize = require('sequelize');
//建立連接
const sequelize = new Sequelize('database_name', 'username', 'password', {
  host: 'localhost',
  dialect: 'mysql',
  //用戶名密碼是否需要加密
  operatorsAliases: false,
  define: {
    //取消Sequeilze的數據表名自動複數化
    freezeTableName: true
  },
  //時區
  timezone: '+08:00'
});

sequelize.authenticate().then(() => {
  console.log('Connection has been established successfully.');
}).catch(err => {
  console.error('Unable to connect to the database:', err);
});

//定義模型
const Model = Sequelize.Model;
class User extends Model {}
User.init({
  id: {
    type: Sequelize.INTEGER,
    primaryKey: true,
    autoIncrement: true,
    comment: '用戶ID'
  },
  name: {
    type: Sequelize.STRING(200),
    comment: '用戶姓名'
  },
  age: {
    type: Sequelize.INTEGER,
    comment: '用戶年齡'
  }
}, {
  sequelize,
  modelName: 'user'
});

//創建表格
sequelize.sync({
  force: false //強制創建表,存在則刪除後重新創建
}).then(() => {
  console.log('OK')
});

//增加
User.create({ name: 'tom', age: 25 }).then(user => {
  console.log(user.toJSON());
});

//查詢
User.findAll().then(users => {
  console.log(users);
});

//修改
User.update({ name: 'jerry' }, { where: { age: 25 } }).then(ret => {
  console.log(ret);
});

//刪除
User.destroy({ where: { age: 25 } }).then(ret => {
  console.log(ret);
});

五、sequelize常用API

1、define 定義模型

2、sync 同步表格

3、create 添加數據

4、findAll 查詢數據

5、update 更新數據

6、destroy 刪除數據

7、query 原生SQL語句查詢

8、transaction 事務操作

9、hook 鉤子函數

10、數據庫關係映射定義

六、總結

ORM框架是現代化Web開發工具中必不可少的一環,對於減少程序員錯誤率、提高開發效率和代碼可讀性都起到了積極的作用。Node.js中的ORM模塊sequelize提供了一系列的API函數,使得我們能夠快速地進行數據庫操作,同時減少了代碼的編寫量,是一個很好的選擇。

原創文章,作者:SASLV,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/372748.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SASLV的頭像SASLV
上一篇 2025-04-25 15:26
下一篇 2025-04-25 15:26

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Django ORM如何實現或的條件查詢

    在我們使用Django進行數據庫操作的時候,查詢條件往往不止一個,一個好的查詢語句需要考慮我們的查詢要求以及業務場景。在實際工作中,我們經常需要使用或的條件進行查詢,本文將詳細介紹…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • ORM持久層

    ORM(對象關係映射)是一種編程技術,它將面向對象的編程語言中的對象與關係型數據庫中的表進行映射。通過ORM,我們可以用面向對象的方式操作數據庫,減少了手寫SQL語句的複雜度以及對…

    編程 2025-04-28
  • JS圖片沿着SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿着SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27
  • 如何解決Node.js中jwt.sign()響應過慢的問題

    本文將從多個方面探討如何解決Node.js中jwt.sign()響應過慢的問題,給出完整的代碼示例與最佳實踐,幫助開發者更好地處理這個問題。 一、問題概述 在使用Node.js編寫…

    編程 2025-04-27
  • 如何使用JS調用Python腳本

    本文將詳細介紹通過JS調用Python腳本的方法,包括使用Node.js、Python shell、child_process等三種方法,以及在Web應用中的應用。 一、使用Nod…

    編程 2025-04-27
  • Gino FastAPI實現高效低耗ORM

    本文將從以下多個方面詳細闡述Gino FastAPI的優點與使用,展現其實現高效低耗ORM的能力。 一、快速入門 首先,我們需要在項目中安裝Gino FastAPI: pip in…

    編程 2025-04-27

發表回復

登錄後才能評論