NodeJS 使用官方oracledb库连接数据库教程

导读

Linux下安装使用

  • gcc安装
  • nodejs安装
  • oracle客户端安装
  • npm安装oracledb测试连接
  • 错误说明

windows下安装使用

  • gcc安装
  • nodejs安装
  • oracle客户端安装
  • npm安装oracledb测试连接
  • 错误说明

Linux下安装使用

一、安装需要GCC 4.7(或更高版本)

因为编译node 4(或更高版本)需要C++ 11兼容的编译器。Linux 6和RHEL 6上的默认编译器不具备所需的C++ 11支持。安装GCC 4.7或更高版本或升级到Linux 7。(点击查看官方安装c++ 11教程)或者参考 CentOS yum升级GCC到4.8 教程。

注:安装后验证版本:

gcc --version

二、安装nodejs

以6.9.4版本为例安装(根据版本参考即可)

cd /opt
tar -Jxf node-v6.9.4-linux-x64.tar.xz

设置Node.js 环境变量:

export PATH=/opt/node-v6.9.4-linux-x64/bin:$PATH

查看node版本

node -v
//保证npm版本最新
npm i -g npm to update

三、安装oracle客户端 'Basic' 和 'SDK'  zip包

1. 进入 官方下载地址,下载以下两个包,并安装在同一个目录(官方下载各种验证,这里提供百度云盘下载链接)

以本机测试为例,我的安装位置(可自定义)为 /opt/oracle

cd /opt/oracle
unzip instantclient-basic-linux.x64-12.2.0.1.0.zip
unzip instantclient-sdk-linux.x64-12.2.0.1.0.zip
mv instantclient_12_2 instantclient
cd instantclient
ln -s libclntsh.so.12.1 libclntsh.so

设置环境变量

//把以下环境变量添加至当前环境变量文件下
export LD_LIBRARY_PATH=/opt/oracle/instantclient:$LD_LIBRARY_PATH
export OCI_LIB_DIR=/opt/oracle/instantclient
export OCI_INC_DIR=/opt/oracle/instantclient/sdk/include

四、安装oracledb 测试

安装oracle库:

npm install oracledb

输出:

> oracledb@1.13.1 install /opt/oracletest/node_modules/oracledb
> node-gyp rebuildmake: Entering directory `/opt/oracletest/node_modules/oracledb/build'
CXX(target) Release/obj.target/oracledb/src/njs/src/njsOracle.o
CXX(target) Release/obj.target/oracledb/src/njs/src/njsPool.o
CXX(target) Release/obj.target/oracledb/src/njs/src/njsConnection.o
CXX(target) Release/obj.target/oracledb/src/njs/src/njsResultSet.o
CXX(target) Release/obj.target/oracledb/src/njs/src/njsMessages.o
CXX(target) Release/obj.target/oracledb/src/njs/src/njsIntLob.o
CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiEnv.o
CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiEnvImpl.o
CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiException.o
CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiExceptionImpl.o
CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiConnImpl.o
CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiDateTimeArrayImpl.o
CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiPoolImpl.o
CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiStmtImpl.o
CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiUtils.o
CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiLob.o
CXX(target) Release/obj.target/oracledb/src/dpi/src/dpiCommon.o
SOLINK_MODULE(target) Release/obj.target/oracledb.node
COPY Release/oracledb.node
make: Leaving directory `/opt/oracletest/node_modules/oracledb/build'
npm WARN saveError ENOENT: no such file or directory, open '/opt/oracletest/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/opt/oracletest/package.json'
npm WARN oracletest No description
npm WARN oracletest No repository field.
npm WARN oracletest No README data
npm WARN oracletest No license field.+ oracledb@1.13.1
added 2 packages in 42.994s

在当前目录新建app.js测试连接,执行:

node app.js

执行后报错:

  • ORA-24454: client host name is not set

这里需要设置主机名到 /etc/hosts

$ sudo /bin/bash -c "echo '127.0.1.1 ${HOSTNAME}' >> /etc/hosts"

设置后重新执行 node app.js 返回打印结果成功。

如果pm2管理项目时报错:Error: NJS-045: cannot load the oracledb add-on binary for Node.js **** (linux, x64)

请记得pm2 restart *** --update-env 来更新环境变量

参考 https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#instzip

Windows下安装使用

一、安装c++ 编译环境

这里是下载的 Visual Studio Express 2013 for Windows Desktop

1.官方下载

(由于下载过于麻烦,可以通过这里提供的 百度云盘下载 安装文件 cn_visual_studio_express_2012_for_windows_desktop_x86_web_installer_1001992.exe)

找到Visual Studio Express 2012 for Windows Desktop 并点击右上角 下载  按钮 开始下载

下载完安装文件 cn_visual_studio_express_2012_for_windows_desktop_x86_web_installer_1001992.exe 并点击安装

二、安装 Oracle instant client

这是 Oracle 提供的访问数据库的 C++接口, windows 64位在这里下载 Version 12.1.0.1.0 中的

instantclient-basic-windows.x64-12.1.0.1.0.zip

instantclient-sdk-windows.x64-12.1.0.1.0.zip;

1.官方下载地址(由于官方下载权限和网络问题,这里同样提供 百度云下载 地址。)

下载完成后把它们解压到 D:\db\oracle\instantclient_12_2 文件夹中(可自定义目录), 由于两个 zip 中的文件各不相同, 所以合并到同一个文件夹也不会发生覆盖.

Windows环境变量设置

系统环境变量新增以下3个:

OCI_LIB_DIR=D:\db\oracle\instantclient_12_2\sdk\lib\msvc
OCI_INC_DIR=D:\db\oracle\instantclient_12_2\sdk\include
OCI_VERSION=12path环境变量 里加上 以下两个,注意先后顺序

三、安装nodejs(省略,nodejs.org 下载msi安装包安装)

这里需要注意 npm版本保证最新即可

下面是npm升级命令:

npm i -g npm

四、安装oracledb 测试

npm install oracledb

代码测试如同linux下方式,请参考上面linux安装 第四章内容。

如果安装oracledb包不成功,请尝试重启电脑试一试(亲测)。

转载来源:https://www.cnblogs.com/rysinal/p/7779055.html

NodeJS 使用官方oracledb库连接数据库教程相关推荐

  1. node oracle linux 安装,Linux 下 nodejs 使用官方oracledb库连接数据库 教程

    npm install oracledb 输出: > [email protected] install /opt/oracletest/node_modules/oracledb > n ...

  2. 坯子库无法一键安装插件没用_坯子插件库-坯子插件库下载 v2021.1官方版 附安装教程-下载啦...

    坯子插件库是一款实用的sketchup插件管理软件,包含丰富的插件集,能够进行su插件的下载.安装.卸载和管理,软件启动速度快,支持离线使用,兼容sketchup2014-2020版本,需要的朋友可以 ...

  3. 100多个Jupyter精选资源合集!GitHub高赞,包括项目、库、教程等11个方面

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要5分钟 Follow小博主,每天更新前沿干货 作者:乾明 转自:量子位 Jupyter,一个开源的Web应用程序,能在网页页面中直接编写代码. ...

  4. 2019b官方手册中文版_数据科学|「最全」实至名归,NumPy 官方早有中文教程,结合深度学习,还有防脱发指南...

    文章须知 文章作者:机器之心 责任编辑:书生 审核编辑:阿春 微信编辑:玖蓁 本文转载自公众号 机器之心 (ID:almosthuman2014) 原文链接:「最全」实至名归,NumPy 官方早有中文 ...

  5. JDBC连接数据库教程,postgreSQL

    https://blog.csdn.net/jg15617651654/article/details/63262456/ JDBC连接数据库教程,postgreSQL 流年你奈我何 2017-03- ...

  6. 单片机语音库文件_20天备战智能车之NXP库使用教程逐飞科技

    20天备战智能车之NXP库使用教程 距离比赛的时间又近了一天,今天逐飞为大家分享的是"逐飞开源库"的使用方法,从开源网站下载开源库到如何使用开源库做一个梳理,学会了开源库的使用,可 ...

  7. linux库怎么安装路径设置,Linux libtins 库安装教程

    因为工作原因需要用到libtins网络库, 所以今天去装一下. 很尴尬,由于本人对linux理解比较浅, 所以在中途遇到了一些问题. 虽然只是简单的安装步骤,但是阻挡不了自己菜啊. 一.  下载lib ...

  8. ColorUI组件库简易教程之交互组件

    官方示例在此!!!官方示例在此!!!官方示例在此!!! 这主要是基于uni-app开发的,所以,请多看uni-app文档,了解一些标签.属性,可以更好的使用该组件 目录 交互组件 Bar操作条 Nav ...

  9. Arduino:关于解决 pluseIn与官方舵机库冲突的办法

    关于解决arduino pluseIn与官方舵机库冲突的办法 一.前言 Arduino在国内的知名度逐年提高,多数单片机爱好者选择使用其进行项目开发.期间难免遇见一些从未见过的bug.在实际工程中,能 ...

最新文章

  1. 差分约束 【bzoj2330】[SCOI2011]糖果
  2. IM开发基础知识补课(五):通俗易懂,正确理解并用好MQ消息队列
  3. Java黑皮书课后题第5章:*5.31(金融应用:计算CD价值)假设你用10 000美元投资一张CD,年利率为5.75%。编写程序,提示由用户输入一个金额数、年获利率、月份数,然后显示一个表格
  4. 4g通信模块怎么连接sim卡_4G通信模块在ARM平台下的应用
  5. python中的map,feilter,和reduce函数
  6. 白鹭引擎 - 项目的创建与动态调试
  7. Wix 3.0正式发布
  8. word中a3转a4排版打印
  9. qq2009 好像和金山词霸屏幕取词有冲突
  10. 前言,flutter页面切换动画
  11. 提高Java反射速度的方法以及对setAccessable的误解
  12. 数据结构(3) 第三天 栈的应用:就近匹配/中缀表达式转后缀表达式 、树/二叉树的概念、二叉树的递归与非递归遍历(DLR LDR LRD)、递归求叶子节点数目/二叉树高度/二叉树拷贝和释放...
  13. 使用计算机进入什么状态,装机过程中什么情况要进bios设置?
  14. delphi ord()
  15. 如何用计算机控制家带你开关,计算机控制系统复习点及答案
  16. 罗伯塔·威廉姆斯(roberta williams)是世界上第一位图形计算机游戏设计师,但她以...
  17. 并查集训练题解(F-J)
  18. 软件构造lab2 - 实验报告
  19. 若依集成aj-captcha实现滑块验证码(分离版)
  20. 褥羊毛,终于攒够了付费文章的简书钻

热门文章

  1. 减少HTTP请求之合并图片详解(大型网站优化技术)
  2. Linux: wget 使用技巧
  3. 人工智障学习笔记——机器学习(9)最大期望算法
  4. session存储的替代方法redis
  5. 数据库设计的6个阶段
  6. Redis操作命令(一)
  7. LeetCode 26. Remove Duplicates from Sorted Array
  8. TextDetection文本检测数据集汇总
  9. ajax通用格式 jquery版本
  10. xpath helper小工具的安装