尝试使用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/');
有人可以帮我这个吗?
答案 0 :(得分:0)
我知道这是一个1岁的问题,但我认为这个问题至少需要一个正确的解释/答案,以便未来的读者可能不会感到困惑。
错误:模块版本不匹配。预计47岁,得到46岁。
您将在Windows平台上遇到此错误,这实际上不是错误或缺陷,这只是因为node-ibm_db不支持特定节点版本(您在Windows平台上用于安装node-ibm_db) )。
原因:node-ibm_db在模块内为特定的主节点版本(如4.x,6.x等)提供预编译的节点二进制文件,模块在安装时不编译(仅在Windows上),它使用预编译的二进制文件到安装和设置。
因此,如果您使用nodejs的最新主要版本,特别是那个, - node-ibm_db尚未支持的节点(或者只是预编译的二进制文件不可用),您将收到此错误。