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中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
nodejs初步体验篇
Nov 23 NodeJs
在windows上用nodejs搭建静态文件服务器的简单方法
Aug 11 NodeJs
使用nodejs中httpProxy代理时候出现404异常的解决方法
Aug 15 NodeJs
搭建简单的nodejs http服务器详解
Mar 09 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
nodejs 十六进制字符串型数据与btye型数据相互转换
Jul 30 NodeJs
NodeJs项目中关闭ESLint的方法
Aug 09 NodeJs
CentOS7中源码编译安装NodeJS的完整步骤
Oct 13 NodeJs
详解nodejs 配置文件处理方案
Jan 02 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
建立动态的WML站点(二)
2006/10/09 PHP
php操作sqlserver关于时间日期读取的小小见解
2009/11/29 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
php利用gd库为图片添加水印
2016/11/09 PHP
php利用imagemagick实现复古老照片效果实例
2017/02/16 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
Javascript的构造函数和constructor属性
2010/01/09 Javascript
基于jquery循环map功能的代码
2011/02/26 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
教你如何使用node.js制作代理服务器
2014/11/26 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
vue-cli中的webpack配置详解
2017/09/25 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
layui实现tab的添加拒绝重复的方法
2019/09/04 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
2019/10/16 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
python控制台英汉汉英电子词典
2020/04/23 Python
python使用append合并两个数组的方法
2015/04/28 Python
使用Python的内建模块collections的教程
2015/04/28 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
ktv收银员岗位职责
2013/12/16 职场文书
文明之星事迹材料
2014/05/09 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
社区护士演讲稿
2014/08/27 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
2014年学校工作总结
2014/11/20 职场文书
工程安全生产协议书
2014/11/21 职场文书
投标单位介绍信
2015/05/05 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js