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 相关文章推荐
PHPStorm 2020.1 调试 Nodejs的多种方法详解
Sep 17 NodeJs
Nodejs进程管理模块forever详解
Jun 01 NodeJs
Nodejs实现多人同时在线移动鼠标的小游戏分享
Dec 06 NodeJs
详解nodeJS之路径PATH模块
May 31 NodeJs
基于nodejs实现微信支付功能
Dec 20 NodeJs
nodejs+mongodb+vue前后台配置ueditor的示例代码
Jan 02 NodeJs
NodeJS简单实现WebSocket功能示例
Feb 10 NodeJs
NodeJS父进程与子进程资源共享原理与实现方法
Mar 16 NodeJs
解决nodejs的npm命令无反应的问题
May 17 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
详解NodeJS Https HSM双向认证实现
Mar 12 NodeJs
nodejs使用Sequelize框架操作数据库的实现
Oct 21 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
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
PHP中substr函数字符串截取用法分析
2016/01/07 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
2016/12/08 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
JS使用贪心算法解决找零问题示例
2017/11/27 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
layui从数据库中获取复选框的值并默认选中方法
2018/08/15 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
python设计模式大全
2016/06/27 Python
PyCharm 常用快捷键和设置方法
2017/12/20 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
python用插值法绘制平滑曲线
2021/02/19 Python
Python Gitlab Api 使用方法
2019/08/28 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
Python @property原理解析和用法实例
2020/02/11 Python
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
小学生成长感言
2014/01/30 职场文书
创业计划实施的7大步骤
2014/02/05 职场文书
宗教学大学生职业生涯规划范文
2014/02/08 职场文书
先进集体事迹材料
2014/02/17 职场文书
公司搬迁通知
2015/04/20 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
超强台风观后感
2015/06/09 职场文书
小学教师读书笔记
2015/07/01 职场文书
员工升职自我评价
2019/03/26 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android