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的子进程(child_process)调用系统命令的方法分享
Jun 05 NodeJs
跟我学Nodejs(二)--- Node.js事件模块
May 21 NodeJs
nodejs URL模块操作URL相关方法介绍
Mar 03 NodeJs
Nodejs学习笔记之入门篇
Apr 16 NodeJs
Nodejs获取网络数据并生成Excel表格
Mar 31 NodeJs
nodejs个人博客开发第二步 入口文件
Apr 12 NodeJs
NodeJs使用Mysql模块实现事务处理实例
May 31 NodeJs
nodejs利用ajax实现网页无刷新上传图片实例代码
Jun 06 NodeJs
浅析 NodeJs 的几种文件路径
Jun 07 NodeJs
Nodejs之TCP服务端与客户端聊天程序详解
Jul 07 NodeJs
nodejs+mongodb+vue前后台配置ueditor的示例代码
Jan 02 NodeJs
详解Nodejs mongoose
Jun 10 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
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
JQuery 表单中textarea字数限制实现代码
2009/12/07 Javascript
jquery 新浪网易的评论块制作
2010/07/01 Javascript
在jQuery中 关于json空对象筛选替换
2013/04/15 Javascript
JQuery 操作/获取table具体代码
2013/06/13 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
JavaScript中双叹号(!!)作用示例介绍
2014/04/10 Javascript
jQuery中detach()方法用法实例
2014/12/25 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
js实现验证码功能
2020/07/24 Javascript
js实现点击选项置顶动画效果
2020/08/25 Javascript
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
2020/12/29 Javascript
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
法律系毕业生自荐信范文
2014/03/27 职场文书
应届毕业生求职信
2014/05/26 职场文书
班级出游活动计划书
2014/08/15 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
安装工程师岗位职责
2015/02/13 职场文书
护士个人总结范文
2015/02/13 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
怎样写好演讲稿题目?
2019/08/21 职场文书
分析mysql中一条SQL查询语句是如何执行的
2021/06/21 MySQL
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL