Node.js 生态数据操作库和 ORM 大盘点
在Node.js生态中,有许多强大的数据操作库和对象关系映射(ORM)工具。以下是一些最常用的:
Sequelize: Sequelize是一个基于Promise的Node.js ORM,适用于PostgreSQL, MySQL, SQLite 和 Microsoft SQL Server等多种数据库。它支持多对多关系、关联关系、预加载、事务等特性。
安装:
npm install sequelize
使用示例:
const { Sequelize, DataTypes } = require('sequelize'); const sequelize = new Sequelize('sqlite::memory:'); const User = sequelize.define('User', { // 模型属性定义 name: DataTypes.STRING, favoriteColor: { type: DataTypes.ENUM('red', 'blue', 'green'), defaultValue: 'green' } }); // 创建表 await sequelize.sync(); // 创建用户 const jane = await User.create({ name: 'Jane', favoriteColor: 'blue' });
Mongoose: Mongoose是一个为 MongoDB 设计的 Node.js ORM,提供了丰富的数据验证和数据转换机制。
安装:
npm install mongoose
使用示例:
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/myapp', { useNewUrlParser: true }); const Schema = mongoose.Schema; const userSchema = new Schema({ name: String, favoriteColor: { type: String, default: 'green' } }); const User = mongoose.model('User', userSchema); // 创建用户 const jane = new User({ name: 'Jane', favoriteColor: 'blue' });
TypeORM: TypeORM是一个开源的、完全支持TypeScript的ORM框架,用于Node.js。它可以操作数据库,并且可以通过JavaScript或TypeScript编写。
安装:
npm install typeorm
使用示例:
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"; @Entity() export class User { @PrimaryGeneratedColumn() id: number; @Column() name: string; @Column({ default: 'green' }) favoriteColor: string; } // 创建用户 const user = new User(); user.name = 'Jane'; user.favoriteColor = 'blue';
Waterline: Waterline是Node.js的ORM,它提供了一种简单的方法来管理不同的数据库。
安装:
npm install waterline
使用示例(与MongoDB结合):
const Waterline = require('waterline'); const MongooseAdapter = require('sails-mongo'); const orm = new Waterline(); let User = Waterline.Collection.extend({ identity: 'user', connection: 'mongo', schema: true, attributes: { name: { type: 'string', required:
评论已关闭