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为什么选择javascript为载体语言
Jan 13 NodeJs
nodejs URL模块操作URL相关方法介绍
Mar 03 NodeJs
用NodeJS实现批量查询地理位置的经纬度接口
Aug 16 NodeJs
Nodejs进阶:核心模块net入门学习与实例讲解
Nov 21 NodeJs
nodejs使用express创建一个简单web应用
Mar 31 NodeJs
NodeJs中express框架的send()方法简介
Jun 20 NodeJs
NodeJS使用七牛云存储上传文件的方法
Jul 24 NodeJs
nodejs+mongodb aggregate级联查询操作示例
Mar 17 NodeJs
原生nodejs使用websocket代码分享
Apr 07 NodeJs
PHPStorm中如何对nodejs项目进行单元测试详解
Feb 28 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
Mar 12 NodeJs
nodejs开发一个最简单的web服务器实例讲解
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
珊瑚虫IP库浅析
2007/02/15 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
WordPress过滤垃圾评论的几种主要方法小结
2016/07/11 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
2018/05/28 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
js导入导出excel(实例代码)
2013/11/25 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
分享我的jquery实现下拉菜单心的
2015/11/29 Javascript
jquery点击改变class并toggle的实现代码
2016/05/15 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
详解js删除数组中的指定元素
2018/10/31 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
Python易忽视知识点小结
2015/05/25 Python
在MAC上搭建python数据分析开发环境
2016/01/26 Python
python实现壁纸批量下载代码实例
2018/01/25 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
python之DataFrame实现excel合并单元格
2021/02/22 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
python类的实例化问题解决
2019/08/31 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
关于python中的xpath解析定位
2020/03/06 Python
python中pivot()函数基础知识点
2021/01/03 Python
应用数学专业求职信
2014/03/14 职场文书
争先创优公开承诺书
2014/08/30 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
2015年质量月活动总结报告
2015/03/27 职场文书
如何写辞职信
2015/05/13 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书