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服务器(2):nodejs服务器的构成分析
Dec 18 NodeJs
nodejs实现遍历文件夹并统计文件大小
May 28 NodeJs
nodejs的HTML分析利器node-jquery用法浅析
Nov 08 NodeJs
Nodejs 发送Post请求功能(发短信验证码例子)
Feb 09 NodeJs
NodeJS基础API搭建服务器详细过程记录
Apr 01 NodeJs
理解nodejs的stream和pipe机制的原理和实现
Aug 12 NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 NodeJs
Linux Centos7.2下安装nodejs&npm配置全局路径的教程
May 15 NodeJs
nodejs初始化init的示例代码
Oct 10 NodeJs
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
Oct 17 NodeJs
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
Feb 02 NodeJs
NodeJS有难度的面试题(能答对几个)
Oct 09 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
phpMyAdmin2.11.6安装配置方法
2008/08/24 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
2015/07/06 PHP
WordPress分页伪静态加html后缀
2016/06/08 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
PHP 实现缩略图
2021/03/09 PHP
html页面显示年月日时分秒和星期几的两种方式
2013/08/20 Javascript
JS阻止用户多次提交示例代码
2014/03/26 Javascript
JavaScript中String.prototype用法实例
2015/05/20 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
详解Vue 方法与事件处理器
2017/06/20 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
js实现电灯开关效果
2021/01/19 Javascript
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
Python之reload流程实例代码解析
2018/01/29 Python
python中使用while循环的实例
2019/08/05 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
2019/08/15 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
Python下载的11种姿势(小结)
2020/11/18 Python
Python3爬虫ChromeDriver的安装实例
2021/02/06 Python
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
销售文员的岗位职责
2013/11/20 职场文书
会计系个人求职信范文分享
2013/12/20 职场文书
新文化运动的基本口号
2014/06/21 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
小学副班长竞选稿
2015/11/21 职场文书
忆童年!用Python实现愤怒的小鸟游戏
2021/06/07 Python
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB