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观察者模式
Oct 13 NodeJs
NodeJS实现阿里大鱼短信通知发送
Jan 17 NodeJs
nodeJs内存泄漏问题详解
Sep 05 NodeJs
nodejs实例解析(输出hello world)
Jan 03 NodeJs
windows 下安装nodejs 环境变量设置
Feb 02 NodeJs
nodeJs链接Mysql做增删改查的简单操作
Feb 04 NodeJs
NodeJS测试框架mocha入门教程
Mar 28 NodeJs
详解nodejs模板引擎制作
Jun 14 NodeJs
PHPStorm中如何对nodejs项目进行单元测试详解
Feb 28 NodeJs
nodejs实现用户登录路由功能
May 22 NodeJs
nodejs实现的http、https 请求封装操作示例
Feb 06 NodeJs
nodejs实现百度舆情接口应用示例
Feb 07 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设计模式 Template (模板模式)
2011/06/26 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
js实现下一页页码效果
2017/03/07 Javascript
基于JavaScript实现焦点图轮播效果
2017/03/27 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
Vue项目History模式404问题解决方法
2018/10/31 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
2019/03/21 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
python调用matlab的m自定义函数方法
2019/02/18 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
天游软件面试
2013/11/23 面试题
季度思想汇报
2014/01/01 职场文书
大学军训感言300字
2014/03/09 职场文书
《白鹅》教学反思
2014/04/13 职场文书
表彰大会策划方案
2014/05/13 职场文书
安全保证书怎么写
2015/02/28 职场文书
台风停课通知
2015/04/24 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
社区安全温馨提示语
2015/07/14 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书