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分页类代码分享
Jun 17 NodeJs
nodejs之请求路由概述
Jul 05 NodeJs
NodeJS实现阿里大鱼短信通知发送
Jan 17 NodeJs
NodeJS的Promise的用法解析
May 05 NodeJs
详谈Angular路由与Nodejs路由的区别
Mar 05 NodeJs
nodejs入门教程六:express模块用法示例
Apr 24 NodeJs
nodejs批量下载图片的实现方法
May 19 NodeJs
nodejs创建简易web服务器与文件读写的实例
Sep 07 NodeJs
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
Jan 05 NodeJs
详解nodejs通过响应回写的方式渲染页面资源
Apr 07 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
Mar 12 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一段代码轻松搞定(全面版)
2018/10/23 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
2009/12/28 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
webpack的CSS加载器的使用
2018/09/11 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
动态创建类实例代码
2009/10/07 Python
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
python自动格式化json文件的方法
2015/03/11 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
2016/11/19 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
Html5无刷新修改browser Url的方法
2014/01/15 HTML / CSS
努比亚手机官网:nubia
2016/10/06 全球购物
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
linux面试题参考答案(9)
2015/01/07 面试题
如何写毕业求职自荐信
2013/11/06 职场文书
应用艺术专业个人的自我评价
2014/01/03 职场文书
护理目标管理责任书
2014/07/25 职场文书
学生意外伤害赔偿协议书
2014/09/17 职场文书
秋季运动会开幕词
2015/01/28 职场文书
英文自荐信范文
2015/03/25 职场文书
股东协议书范本2016
2016/03/21 职场文书
python绘图subplots函数使用模板的示例代码
2021/04/30 Python
php解析非标准json、非规范json的方式实例
2022/05/10 PHP