windows版本按装记录 适用于 oracledb@1.12.2
linux版本与windows的差异在于第一步,编译环境的设置,请参考node-gyp安装手册
1. 下载编译模块,有两种编译模块可用,第一种为直接使用npm安装windows-bulid-tools,第二种为手动安装编译器。
- npm install –global –production windows-build-tools(很慢,几个小时都有可能)
- 手动下载安装Visual C++ Build Tools与Python 2.7,然后执行npm config set msvs_version 2015(这种经过多次尝试,不是很靠普)
2.按装node-gyp模块,这是一个node编译C++工程的模块。
npm install node-gyp -g
3.下载instantclient_12_1,请下载对应系统版本,操作系统版本,oracle对应版本
官方下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index.html
instantclient-basiclite-windows.x64-12.1.0.2.0
instantclient-sdk-windows.x64-12.1.0.2.0
下载后,将两个文件解压到同一个目录。
4.设置环境变量:
Path=D:\instantclient_12_1
OCI_INC_DIR=D:\instantclient_12_1\sdk\include\
OCI_LIB_DIR=D:\instantclient_12_1\sdk\lib\msvc\
这里需要注意的是,instantclient_12_1所在目录,不可以有空格,否则会导致工程无法正常使用
5.下载oracledb模块
npm install oracledb --save
下载完成后,会自动编译一次,但编译出来的可能无法正常使用,需要重新编译。
6.重新编译
进入到node_modules/oracledb目录。执行指令
node-gyp configure
node-gyp build
测试代码:
var oracledb = require('oracledb');
// Get a non-pooled connection
oracledb.getConnection(
{
user: "*******",
password: "*******",
connectString: "IP:port/schema"
},
function (err, connection)
{
if (err)
{
console.error(err.message);
return;
}
connection.execute("select * from channel_info t", [], function (err, result)
{
if (err)
{
console.error(err.message);
doRelease(connection);
return;
}
console.log(result.metaData);
console.log(JSON.stringify(result.rows.map((v)=>
{
return result.metaData.reduce((p, key, i)=>
{
p[key.name] = v[i];
return p;
}, {})
})));
doRelease(connection);
});
});
// Note: connections should always be released when not needed
function doRelease(connection)
{
connection.close(console.info);
}