我正在尝试从node.js应用程序连接到DB2。我决定使用db2 node module。安装db2.js
的说明首先告诉您安装node-gyp
,如下所示:
sudo npm install -g node-gyp
这似乎对我有用。
然后我尝试使用以下命令安装db2.js:
sudo npm install -g db2
然后我收到此错误:
...
cc1plus: error: unrecognized command line option "-std=c++0x"
...
gyp ERR! node -v v0.10.9
gyp ERR! node-gyp -v v0.9.6
看prereqs for node-gyp,它说我需要gcc。在我的系统上使用gcc执行操作会显示-std
选项仅支持一些非常旧的编译器,例如c++98
,gnu99
等。我有gcc版本4.1.2 20080704 (Red Hat 4.1.2-50)
。< / p>
所以我有几个问题。是否有另一种方法从节点连接到db2?如果我继续使用db2.js,那么我现在需要做什么,升级我的gcc或安装c++0x
编译器? (我认为这是C ++版本11)。
我在linux服务器上升级gcc时遇到问题,所以我尝试在我的覆盆子pi上安装测试:
sudo npm install -g node-gyp
cd /usr/lib/node_modules
sudo git clone https://github.com/herzi/db2.js.git
sudo node-gyp configure
sudo node-gyp build
在最后一个命令中我收到此错误:
In file included from ../src/binding.cc:3:0:
../src/connection.hh:6:20: fatal error: sqlcli.h: No such file or directory
compilation terminated.
我猜这是DB2 Client头文件,所以我可能也需要安装它。
我在我的系统上将gcc
安装在另一个目录中。然后我更改了/usr/bin
中gcc
和g++
的符号链接指向我的新gcc和g ++(gcc内部)。现在我得到了与我的pi相同的sqlcli.h
错误。是时候获取DB2客户端了。
咩。我有db2客户端9.1.2。根据db2 binding.gyp
文件中的一些搜索,我需要9.7。
我安装了“IBM Data Server Runtime Client V9.7”,但它在sqlcli.h
文件夹中没有/opt/IBM/db2/V9.7/include
!我在不同的机器上有一个V9.1.3,它有一个包含文件夹。所以我安装了我的"IBM Data Server Client 9.7" using an old blog post来帮助我。现在我从未声明strcmp
的node-gyp构建中收到错误。我敢打赌,我需要设置一个lib include或node environment var。
答案 0 :(得分:2)
您应该使用IBM's node module连接到DB2数据库。它肯定适用于Linux,但对于OS X,您需要查看这个问题:How to connect to DB2 SQL database with node JS?。
答案 1 :(得分:1)
您可以将字符串函数的包含文件(例如#include <cstring>
)添加到src/connection.cc
。这应该启用字符串函数;也许你需要用strcmp()
代替std::strcmp()
。
答案 2 :(得分:1)
行。我为db2.js结束了forking the git repo并为项目贡献了一些工作。现在我可以编译它。希望一旦有拉动,我也可以安装npm
而无需编辑源代码和手动构建。
我找到了先决条件:
首先感谢herzi创建db2.js!