javascript - 试验node-webkit : node-odbc fails

标签 javascript node.js oracle node-webkit node-odbc

我正在尝试使用 node-webkit 创建桌面应用程序。该应用程序查询 Oracle 数据库。为了建立与数据库的连接,我使用 node-odbc .

我使用 node.js 进行了初步测试,以确保我实际上可以使用我安装的 Oracle 驱动程序查询数据库。这是我所做的:

index.js:

var db = require('odbc')();
var cn = 'DSN=****;Uid=****;Pwd=****;';

db.open(cn, function (err) {
  if (err) return console.log(err);

  db.query('select 42 from dual', function (err, data) {
    if (err) console.log(err);

    console.log(data);

    db.close(function () {
      console.log('done');
    });
  });
});

当我运行它时,我得到了以下输出,如预期的那样:

> node index.js
[ { '42': 42 } ]
done

然后我创建了以下node-webkit包:

index.html:

<!DOCTYPE html>
<html>
  <head>
    <title>Hello World!</title>
    <script type="text/javascript">
    var db = require('odbc')();
    var cn = 'DSN=****;Uid=****;Pwd=****;';

    function queryDb() {
        db.open(cn, function (err) {
          if (err) return console.log(err);

          db.query('select 42 from dual', function (err, data) {
            if (err) console.log(err);

            console.log(data);

            db.close(function () {
              console.log('done');
            });
          });
        });
    }
    </script>
  </head>
  <body>
    <input type="button" onclick="queryDb()" value="Query" />
  </body>
</html>

package.json:

{
  "name": "nw-demo-odbc",
  "version": "0.0.1",
  "main": "index.html",
  "dependencies":
  {
    "odbc": "*"
  }
}

但是当我在 node-webkit 中运行它并打开控制台时,显示以下错误:

C:\path\to\package\node_modules\odbc\node_modules\bindings\bindings.js:79 
    Uncaught Error: %1 is not a valid Win32 application.
C:\path\to\package\node_modules\odbc\build\Release\odbc_bindings.node
  • 我使用的是 nw.js v0.12.2。

最佳答案

我认为 ODBC 驱动程序是 32 位的。

因此请按照以下步骤操作:

  1. 将 node-odbc 二进制模块编译为 32 位

    node-gyp clean configure build --arch=ia32 --msvs_version=2015
    
  2. 使用 Node.js 的 32 位可执行文件来运行应用程序

关于javascript - 试验node-webkit : node-odbc fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30876888/

相关文章:

node.js - 如何迭代 Model.stream waterline 查询的每条记录?

sql - Oracle GROUP BY 类似的时间戳?

javascript - 增加显示的数字并将标签中的数字通过php传递给mysql数据库

javascript - 如何用 Next.js 实现 Quill 或 Draft.js 等富文本编辑器?

node.js - 您能否为还没有给定端点处理程序的所有动词创建一个 Express Router 处理程序?

eclipse - 如何将 Github 存储库导入 Nodeclipse (Enide)?

oracle - 实例 "PLSExtProc",状态未知

sql - ORACLE 的 Postgres 转换 KEEP DENSE_RANK FIRST

javascript - Ajax 聊天消息重复而不只是更新

javascript - 我如何添加搜索功能来过滤名称列表