nodejs环境使用Typeorm连接查询Oracle数据


Posted in NodeJs onDecember 05, 2019

首先是typeorm的官方地址,

国内有人翻了中文版,不保证时效性

·通过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编写的、类型系统非常完整的数据库关系映射,放张数据类型截图:

nodejs环境使用Typeorm连接查询Oracle数据

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

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

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

 typescript也是初次接触,文章只是通过短短几星期的摸索得来,内容难免有误,若有错误还请点拨,谢谢

总结

以上所述是小编给大家介绍的nodejs环境使用Typeorm连接查询Oracle数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

NodeJs 相关文章推荐
nodejs入门详解(多篇文章结合)
Mar 07 NodeJs
初始Nodejs
Nov 08 NodeJs
详解nodejs与javascript中的aes加密
May 22 NodeJs
详解NodeJs支付宝移动支付签名及验签
Jan 06 NodeJs
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
Jan 12 NodeJs
详解nodejs操作mongodb数据库封装DB类
Apr 10 NodeJs
浅谈NodeJs之数据库异常处理
Oct 25 NodeJs
NVM安装nodejs的方法实用步骤
Jan 16 NodeJs
nodejs微信开发之自动回复的实现
Mar 17 NodeJs
nodejs实现日志读取、日志查找及日志刷新的方法分析
May 20 NodeJs
如何利用nodejs自动定时发送邮件提醒(超实用)
Dec 01 NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 #NodeJs
NodeJS实现一个聊天室功能
Nov 25 #NodeJs
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
Nov 18 #NodeJs
NodeJs crypto加密制作token的实现代码
Nov 15 #NodeJs
Nodejs技巧之Exceljs表格操作用法示例
Nov 06 #NodeJs
NodeJS http模块用法示例【创建web服务器/客户端】
Nov 05 #NodeJs
nodejs实现UDP组播示例方法
Nov 04 #NodeJs
You might like
NO3第三帝国留言簿制作过程
2006/10/09 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
2015/01/07 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
2015/03/18 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
jquery快捷动态绑定键盘事件的操作函数代码
2013/10/17 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
Bootstrap CSS使用方法
2016/12/23 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
在JavaScript中查找字符串中最长单词的三种方法(推荐)
2021/01/18 Javascript
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
python代码区分大小写吗
2020/06/17 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
使用HTML5技术开发一个属于自己的超酷颜色选择器
2013/09/22 HTML / CSS
美国知名生活购物网站:Goop
2017/11/03 全球购物
自荐书格式
2013/12/01 职场文书
村委会贫困证明范本
2014/09/17 职场文书
借名购房协议书范本
2014/10/06 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
2015年治庸问责工作总结
2015/07/27 职场文书
百年校庆感言
2015/08/01 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server
JavaScript中document.activeELement焦点元素介绍
2021/11/27 Javascript