簡體   English   中英

嘗試使用IBM_DB時出現節點JS綁定錯誤

[英]Node JS Binding error when trying to use IBM_DB

嘗試將IBM_DB用於db2訪問時出現以下錯誤。

$ node nodetest.js
C:\Users\workspace\nodetest\node_modules\bindings\bindings.js:79
    throw e
    ^

Error: Module version mismatch. Expected 47, got 46.
at Error (native)
at Object.Module._extensions..node (module.js:440:18)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at bindings (C:\Users\workspace\nodetest\node_modules\bindings\bindings.js:74:15)
at Object.<anonymous> (C:\Users\workspace\nodetest\node_modules\ibm_db\lib\odbc.js:27:31)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)

這是我正在使用的代碼:

var http = require("http");
var ibmdb = require("ibm_db");
console.log("Test program to access DB2 sample database");
http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World\n');
}).listen(8081);
console.log('Server running at 127.0.0.1:8081/');

有人可以幫我嗎?

我知道這是一個已有1年歷史的問題,但我認為這里至少需要一個正確的解釋/答案,這樣以后的讀者才不會感到困惑。

錯誤:模塊版本不匹配。 預期為47,得到46。

您通常會在Windows平台上遇到此錯誤,而實際上這並不是錯誤或缺陷,這僅僅是因為node-ibm_db不支持特定的節點版本(您正在Windows平台上安裝node-ibm_db所使用)。

原因:node-ibm_db在模塊內為特定的主節點版本(例如4.x,6.x等)提供了預編譯的節點二進制文件,模塊在安裝時不編譯(僅在Windows上),它使用預編譯的編譯后的二進制文件以進行安裝和設置。

因此,如果您使用的是最新版本的nodejs主版本,尤其是該版本,即node-ibm_db目前尚不支持(或者只是預編譯的二進制文件不可用),則會出現此錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM