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极简入门教程(一):模块机制
Oct 25 NodeJs
初始Nodejs
Nov 08 NodeJs
nodejs中使用多线程编程的方法实例
Mar 24 NodeJs
Nodejs中的this详解
Mar 26 NodeJs
Nodejs进阶:基于express+multer的文件上传实例
Nov 21 NodeJs
nodejs入门教程六:express模块用法示例
Apr 24 NodeJs
手把手教你把nodejs部署到linux上跑出hello world
Jun 19 NodeJs
详解Nodejs内存治理
May 13 NodeJs
nodejs 使用 js 模块的方法实例详解
Dec 04 NodeJs
搭建一个nodejs脚手架的方法步骤
Jun 28 NodeJs
Nodejs监听日志文件的变化的过程解析
Aug 04 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
建立文件交换功能的脚本(一)
2006/10/09 PHP
PHP 生成的XML以FLASH获取为乱码终极解决
2009/08/07 PHP
PHP XML数据解析代码
2010/05/26 PHP
thinkphp获取栏目和文章当前位置的方法
2014/10/29 PHP
Yii全局函数用法示例
2017/01/22 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
php中数组最简单的使用方法
2020/12/27 PHP
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
用cssText批量修改样式
2009/08/29 Javascript
ScrollDown的基本操作示例
2013/06/09 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
Bootstrap3制作搜索框样式的方法
2016/07/11 Javascript
深入理解JavaScript中Ajax
2016/08/02 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
Vue精简版风格概述
2018/01/30 Javascript
详解python3实现的web端json通信协议
2016/12/29 Python
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
Django 对象关系映射(ORM)源码详解
2019/08/06 Python
详解字符串在Python内部是如何省内存的
2020/02/03 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
PHP中如何使用Cookie
2015/10/28 面试题
学期评语大全
2014/04/30 职场文书
员工薪酬激励方案
2014/06/13 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
检讨书模板大全
2015/05/07 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
教你利用python实现企业微信发送消息
2021/05/23 Python
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers