Node.js 使用 TypeORM 连接 Oracle 数据库实战指南

作者:岩茶

时间:2026-10-23

浏览:239

本文介绍如何在 Node.js 环境中使用 TypeORM 和 TypeScript 连接 Oracle 数据库。内容涵盖必要的 npm 包安装、tsconfig.json 与 ormconfig.json 的配置、VSCode 调试设置,以及通过 Entity 和 createConnection 进行数据查询的完整流程,并对比了其与 Sequelize 的差异。

文章目录

环境准备与依赖安装

首先访问 TypeORM 的官方文档地址。

国内有用户翻译了中文版,但无法保证内容的时效性。

通过 npm 安装以下依赖包:

  • typeorm,用于连接数据库。
  • @types/node,提供类型系统支持。
  • typescript,作为基础编译语言。
  • oracledb,Oracle 数据库的基础驱动。
  • ts-node,用于在 Node.js 中编译并运行 TypeScript 代码。

项目配置文件详解

在项目根路径下配置相关文件:

  • package.json,用于管理项目依赖、脚本命令及描述信息。
  • tsconfig.json,配置 TypeScript 的编译选项。

{
 "compilerOptions": {
  "module": "commonjs",
  "noImplicitAny": true,
  "removeComments": true,
  "preserveConstEnums": true,
  "sourceMap": true,
  "outDir": "./dist",
  "emitDecoratorMetadata": true,  //typeorm特需
  "experimentalDecorators": true  //typeorm特需
 },
 "include": [
  "src/**/*"
 ],
 "exclude": [
  "node_modules",
  "**/*.spec.ts"
 ]
}

ormconfig.json,存储数据库连接的参数配置。


{
 "type": "oracle",
 "host": "10.16.2.41",
 "port": 1521,
 "username": "admin",
 "password": "admin",
 "sid": "ORCL",
 "synchronize": true,
 "logging": true,
 "entities": [
  "src/entity/**/*.ts"
 ],
 "migrations": [
  "src/migration/**/*.ts"
 ],
 "subscribers": [
  "src/subscriber/**/*.ts"
 ]
}

在 .vscode 目录下配置 launch.json,主要设定 VSCode 调试时 TypeScript 编译生成的 JavaScript 文件路径。此配置仅为了方便本地调试,与项目实际运行无关。


{
 "name": "Current TS File",
 "type": "node",
 "request": "launch",
 "program": "${workspaceRoot}\\node_modules\\ts-node\\dist\\bin.js",
 "args": [
  "${relativeFile}"
 ],
 "cwd": "${workspaceRoot}",
 "protocol": "inspector"
}

核心代码实现与运行

编写核心业务代码:

在项目根路径下创建或编辑 index.ts 文件(文件名可自定义),并在 package.json 的 start 脚本中配置命令为 ts-node index.ts。


import "reflect-metadata";
import {createConnection} from "typeorm";
import {xxx} from "./src/entity/xxx";  //引入数据表结构映射文件

createConnection().then(async connection => {  //连接参数为空时自动按照路径下ormconfig.json信息连接
 /*let a = await connection.query(
  `SELECT * FROM xxx`
 ); *///直接使用原生sql语句查询
 
 let a = await connection.manager.find(xxx)  //使用连接器查询 connection.manager
 console.log("result: ", a);
}).catch(error => console.log(error));

在 src/entity/ 目录下构建数据表的实体结构文件(如 xxx.ts,原文误写为 .js,建议修正为 .ts 以符合 TS 规范),格式参考官方文档示例。

在命令行根路径执行 npm start,或者使用 VSCode 进行调试运行。

至此,已成功使用 TypeORM 连接 Oracle 数据库。若需构建完整的后端服务,还需添加中间件等其他组件。

TypeORM 与 Sequelize 对比及类型系统

与 Sequelize 的差异:

从 Sequelize 迁移至 TypeORM 的原因在于,Sequelize 官方不支持连接 Oracle 数据库。

正如名称所示,TypeORM 是一个使用 TypeScript 编写的、拥有完整类型系统的数据库关系映射工具。参考下图展示的数据类型:

环境准备与依赖安装

这依然是 JavaScript 吗?是的。如此完整的类型系统得益于 TypeScript,我们在构建时可以根据需要酌情使用类型声明,因为类型声明并非强制要求(其本质仍是 JavaScript)。

许多类型可以使用 JavaScript 原生类型加上长度限制来替代,是否使用专用类型声明取决于实际业务需求。

根据数据库自动生成或更新映射文件的脚本相对复杂。

由于作者初次接触 TypeScript,本文内容仅基于短短几周的摸索总结,难免存在疏漏。如有错误,欢迎指正,谢谢。

总结

以上介绍了在 Node.js 环境下使用 TypeORM 连接并查询 Oracle 数据的方法,希望对大家有所帮助。如有任何疑问,请留言,小编会及时回复。感谢大家对本站的支持! 如果您觉得本文对您有帮助,欢迎转载,请注明出处,谢谢!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章