TypeORM 或 Sequelize 之类的 ORM 究竟是如何工作的?
How does ORMs such TypeORM or Sequelize really works?
我想更好地了解 ORM 在幕后是如何工作的以及它是如何能够
将命令和函数转换为对关系和非关系数据库的查询,以及为什么它比直接从后端的数据库连接查询更安全。
我尝试搜索它,但只找到文档和使用 ORM 本身的方法,而不是它在使用时的实际作用。-
一般来说,typeOrm
使用一种叫做装饰器的东西(在 https://www.typescriptlang.org/docs/handbook/decorators.html 阅读更多关于装饰器的信息)。基本上,它们不过是一个函数,可以访问它所注释的变量信息。
例如:@Entity()
、@PrimaryGeneratedColumn()
和 @Column()
是 TypeOrm 库提供的装饰器函数。
因此,借助此装饰器函数,TypeOrm 可以生成优化且安全的代码以与您的数据库交互。
SQL 注入对于使用 SQL 数据库的服务器来说是非常著名的攻击类型,因此在编写 SQL 查询时确保安全性非常重要。您需要手动清理数据,TypeOrm 会在内部处理这些数据。 (参考:https://dev.to/yoshi_yoshi/typeorm-prevent-sql-injection-with-node-js-react-typescript-in-2021-1go4)
我想更好地了解 ORM 在幕后是如何工作的以及它是如何能够 将命令和函数转换为对关系和非关系数据库的查询,以及为什么它比直接从后端的数据库连接查询更安全。
我尝试搜索它,但只找到文档和使用 ORM 本身的方法,而不是它在使用时的实际作用。-
一般来说,typeOrm
使用一种叫做装饰器的东西(在 https://www.typescriptlang.org/docs/handbook/decorators.html 阅读更多关于装饰器的信息)。基本上,它们不过是一个函数,可以访问它所注释的变量信息。
例如:@Entity()
、@PrimaryGeneratedColumn()
和 @Column()
是 TypeOrm 库提供的装饰器函数。
因此,借助此装饰器函数,TypeOrm 可以生成优化且安全的代码以与您的数据库交互。
SQL 注入对于使用 SQL 数据库的服务器来说是非常著名的攻击类型,因此在编写 SQL 查询时确保安全性非常重要。您需要手动清理数据,TypeOrm 会在内部处理这些数据。 (参考:https://dev.to/yoshi_yoshi/typeorm-prevent-sql-injection-with-node-js-react-typescript-in-2021-1go4)