怎么在nodejs中使用Typeorm连接Oracle数据库

发布时间:2021-03-23 14:55:44

来源:亿速云

阅读:86

作者:Leah

本篇文章给大家分享的是有关怎么在nodejs中使用Typeorm连接Oracle数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

·通过npm安装下列包:typeorm //typeorm连接数据库

@types/node //类型系统

typescript //ts基础

oracledb //oracle基础

ts-node //nodejs编译运行ts的工具;

·根路径配置:package.json //项目依赖、脚本、描述等

tsconfig.json //ts编译设置{

"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在debug时由ts编译所得的js路径,此项与项目勿关,只为了方便调试{

"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中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.js,格式参考官网

在cmd根路径运行npm start,或使用vscode调试

至此,我们已经成功使用typeorm连接到了Oracle数据库,若要构成完整的后端只需添加中间件等等

·与sequelize的差异

从Sequelize转移到typeorm,是因为sequelize官方不支持连接Oracle

typeorm像名字中描述的那样,是个使用typescript编写的、类型系统非常完整的数据库关系映射,放张数据类型截图:

84871c79c19980f32df313091919a445.png

这还是js吗?当然,如此完整的类型系统得益于typescript,我们也可以在构建时酌情使用类型声明,因为它不是必须的(本质仍是js)

很多类型都可以使用js原生类型+长度代替,是否使用专用类型声明取决于实际需求

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

以上就是怎么在nodejs中使用Typeorm连接Oracle数据库,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐