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 相关文章推荐
golang、python、php、c++、c、java、Nodejs性能对比
Mar 12 NodeJs
跟我学Nodejs(一)--- Node.js简介及安装开发环境
May 20 NodeJs
我的NodeJs学习小结(一)
Jul 06 NodeJs
nodejs教程之入门
Nov 21 NodeJs
实例详解Nodejs 保存 payload 发送过来的文件
Jan 14 NodeJs
详解nodejs与javascript中的aes加密
May 22 NodeJs
详解nodejs微信公众号开发——2.自动回复
Apr 10 NodeJs
Nodejs中使用captchapng模块生成图片验证码
May 18 NodeJs
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
Jan 05 NodeJs
nodejs更改项目端口号的方法
May 13 NodeJs
Nodejs Express 通过log4js写日志到Logstash(ELK)
Aug 30 NodeJs
用Electron写个带界面的nodejs爬虫的实现方法
Jan 29 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中header设置常见文件类型的content-type
2015/06/23 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
PHP中多线程的两个实现方法
2016/10/14 PHP
万能的php分页类
2017/07/06 PHP
PHP _construct()函数讲解
2019/02/03 PHP
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
js运动动画的八个知识点
2015/03/12 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
2016/08/02 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
python 重命名轴索引的方法
2018/11/10 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
BIFFI美国站:意大利BIFFI BOUTIQUES豪华多品牌时装零售公司
2020/02/11 全球购物
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
文史专业毕业生自荐信
2013/11/17 职场文书
上班离岗检讨书
2014/01/27 职场文书
励志演讲稿300字
2014/08/21 职场文书
水浒传读书笔记
2015/06/25 职场文书
MySQL系列之一 MariaDB-server安装
2021/07/02 MySQL
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js
MySQL主从切换的超详细步骤
2022/06/28 MySQL