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/n/372748.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
SASLVSASLV
上一篇 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

发表回复

登录后才能评论