回答編集履歴
1
文章の流れが変だったので修正しました
answer
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
+
Oracle Instant Clientのパスが通っていない場合は
|
2
|
+
`Error: The specified module could not be found.`
|
3
|
+
といったエラーになりますので、何かしらのOracleのdllが参照されていると思います。
|
4
|
+
(bitが違う場合は明確なエラーメッセージですぐに原因がわかります^^)
|
5
|
+
|
1
6
|
Oracle Instant Client以外にもOracleクライアントがインストールされていませんか?
|
2
7
|
おそらくnpm oracledbでビルドに利用したoci.dllと実行時に使っているoci.dllが違うものと思われます。
|
3
8
|
|
4
|
-
Oracle Instant Clientのパスが通っていない場合は
|
5
|
-
`Error: The specified module could not be found.`
|
6
|
-
といったエラーになりますので。
|
7
|
-
|
8
9
|
自分は参照するOracle Instant Clientを明確にするために、
|
9
10
|
実行時にプログラムのほうで環境変数をセットしています。
|
10
11
|
|
@@ -20,5 +21,11 @@
|
|
20
21
|
const oracledb = require('oracledb');
|
21
22
|
```
|
22
23
|
|
24
|
+
oracledb周りは環境依存が強いので、
|
25
|
+
自分は各OS、アーキテクチャ(bit)、nodeバージョンによってビルドしたモジュールを複数用意し、
|
26
|
+
実行時にrequireしています。
|
27
|
+
```javascript
|
28
|
+
const oracledb = require(`./oracledb${info.bit}-${info.os}-node${info.node_v}`);
|
29
|
+
```
|
23
30
|
|
24
|
-
ちなみにOCI_INC_DIRとOCI_LIB_DIRに関しましてはnpmでoracledbをビルドする際に必要となるもので、実行する際には不要
|
31
|
+
ちなみにOCI_INC_DIRとOCI_LIB_DIRに関しましてはnpmでoracledbをビルドする際に必要となるもので、実行する際には不要となります。
|