繁体   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