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实用示例 缩址还原
Dec 28 NodeJs
nodejs实现黑名单中间件设计
Jun 17 NodeJs
nodejs初步体验篇
Nov 23 NodeJs
nodejs修复ipa处理过的png图片
Feb 17 NodeJs
简单实现nodejs上传功能
Jan 14 NodeJs
nodejs开发——express路由与中间件
Mar 24 NodeJs
NodeJs测试框架Mocha的安装与使用
Mar 28 NodeJs
nodejs multer实现文件上传与下载
May 10 NodeJs
详解IWinter 一个路由转控制器的 Nodejs 库
Nov 15 NodeJs
nodejs实现爬取网站图片功能
Dec 14 NodeJs
nodejs+mongodb+vue前后台配置ueditor的示例代码
Jan 02 NodeJs
详解Nodejs get获取远程服务器接口数据
Mar 26 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
php 从数据库提取二进制图片的处理代码
2009/09/09 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
解析phpstorm + xdebug 远程断点调试
2013/06/20 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
2015/12/29 PHP
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
jQuery getJSON()+.ashx 实现分页(改进版)
2013/03/28 Javascript
js 窗口抖动示例
2013/09/04 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
python tornado使用流生成图片的例子
2019/11/18 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
英国旅游额外服务市场领导者:Holiday Extras(机场停车场、酒店、接送等)
2017/10/07 全球购物
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
心理健康课教学反思
2014/02/13 职场文书
大学毕业感言200字
2014/03/09 职场文书
法制宣传实施方案
2014/03/13 职场文书
关于清明节的演讲稿
2014/09/13 职场文书
团组织推优材料
2014/12/29 职场文书
MySQL Router的安装部署
2021/04/24 MySQL
MySQL的意向共享锁、意向排它锁和死锁
2022/07/15 MySQL
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技