Node.js 从NodeJs读取Access数据库 问题

Node.js 从NodeJs读取Access数据库 问题,node.js,odbc,ms-access-2010,Node.js,Odbc,Ms Access 2010,我需要访问access数据库(*.mdb)的数据。该方法应以nodejs编写,并由多个用户使用,这些用户无需对Windows中的ODBC驱动程序列表进行任何更改 方法 我已经找到了答案。查看文档,以下代码段应该可以正常工作: const db=require('odbc'); const cn=`Provider=Microsoft.Jet.OLEDB.12.0;数据源=C:\\Users\\some\\Dev\\db.mdb`; 数据库连接(cn,(错误,连接)=>{ 如果(错误){ 控制台错

我需要访问access数据库(*.mdb)的数据。该方法应以nodejs编写,并由多个用户使用,这些用户无需对Windows中的ODBC驱动程序列表进行任何更改

方法 我已经找到了答案。查看文档,以下代码段应该可以正常工作:

const db=require('odbc');
const cn=`Provider=Microsoft.Jet.OLEDB.12.0;数据源=C:\\Users\\some\\Dev\\db.mdb`;
数据库连接(cn,(错误,连接)=>{
如果(错误){
控制台错误(err);
}
控制台日志(连接);
});
不幸的是,这是我得到的输出:

[Error: [odbc] Error connecting to the database] {
  odbcErrors: [
    {
      state: 'IM002',
      code: 0,
      message: '[Microsoft][ODBC Driver Manager] The DSN could not be found and' +
        'there was no default driver specified'
    }
  ]
}
null

我找到了另一个名为
node adodb
的包。下面的代码片段对我来说非常适合使用受密码保护的数据库。 通过使用SysWOW64
cscrits.exe
文件,进一步修复了x64和x86之间的差异

const adodb=require('node-adodb');
const cn='Provider=Microsoft.Jet.OLEDB.4.0;数据源=db.mdb;Jet OLEDB:数据库密码=MyPassword;';
const connection=adodb.open(cn);
connection.query(“从用户中选择名称,其中firstname='John';”)。然后((数据)=>{
控制台日志(数据);
}).catch(错误=>{
console.error(JSON.stringify(err))
});

让我直截了当地说:您想使用Node.JS的访问权限,但不使用任何外部驱动程序?好吧,我想开始吧,然后开始完全用JavaScript编写自己的驱动程序。祝你好运。@ErikA非常感谢,但基本上这不是重点。我只是不想让用户手动下载任何东西。将驱动程序包含在某种二进制文件中也可以很好地工作。但撇开这件事不谈,我需要下载什么驱动程序才能工作呢?Jet.OLEDB.12?这个驱动程序是专有的,并且与现有的安装程序在不同的位置发生冲突,所以如果你想自动安装驱动程序,那你就倒霉了。您确实希望您的用户正确设置Access,或者希望完全使用不同的数据库。有关包括下载链接的一般情况,请参阅。非常感谢@ErikA,非常感谢您的帮助!