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服务器(6):作出响应
Dec 18 NodeJs
轻松创建nodejs服务器(7):阻塞操作的实现
Dec 18 NodeJs
nodeJS代码实现计算交社保是否合适
Mar 09 NodeJs
nodejs中实现sleep功能实例
Mar 24 NodeJs
nodejs简单实现中英文翻译
May 04 NodeJs
windows下安装nodejs及框架express
Aug 07 NodeJs
Nodejs学习item【入门手上】
May 05 NodeJs
nodejs操作mongodb的增删改查功能实例
Nov 09 NodeJs
NodeJS简单实现WebSocket功能示例
Feb 10 NodeJs
nodejs同步调用获取mysql数据时遇到的大坑
Mar 02 NodeJs
nodejs文件夹深层复制功能
Sep 03 NodeJs
Nodejs封装类似express框架的路由实例详解
Jan 05 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 Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
PHP封装请求类实例分析【基于Yii框架】
2019/10/17 PHP
利用javascript查看html源文件
2006/11/08 Javascript
Javascript技术技巧大全(五)
2007/01/22 Javascript
更正确的asp冒泡排序
2007/05/24 Javascript
javascript 树控件 比较好用
2009/06/11 Javascript
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
2013/05/19 Javascript
jQuery使用height()获取高度需要注意的地方
2014/12/13 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
Python常用库推荐
2016/12/04 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
python调用c++传递数组的实例
2019/02/13 Python
python3实现猜数字游戏
2020/12/07 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
canvas使用注意点总结
2013/07/19 HTML / CSS
护理专科自荐书范文
2014/02/18 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
超强台风观后感
2015/06/09 职场文书
中学教师教学工作总结
2015/08/13 职场文书