【问题标题】:Is it possible to use express js with an MS Access database?是否可以将 express js 与 MS Access 数据库一起使用?
【发布时间】:2019-12-17 07:56:48
【问题描述】:

是否可以使用 Microsoft Access 数据库 (.accdb) 作为 express js 应用程序的后端?因为我尝试了不同的包来连接它,但不支持。有什么方法可以将 ms access db 与 express rest api 连接起来

【问题讨论】:

    标签: node.js rest express ms-access ms-access-2010


    【解决方案1】:

    你可以使用这个包。 nuintun/node-adodb

    使用示例:

    'use strict';
    
    const ADODB = require('node-adodb');
    const connection = ADODB.open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=node-adodb.mdb;');
    
    connection
        .execute('INSERT INTO Users(UserName, UserSex, UserAge) VALUES ("Newton", "Male", 25)')
        .then(data => {
            console.log(JSON.stringify(data, null, 2));
        })
        .catch(error => {
            console.error(error);
        });
    

    【讨论】:

    • { 错误:在 ChildProcess.child.on.exitCode 处产生 C:\WINDOWS\SysWOW64\cscript.exe 错误(C:\Users\Admin\node_modules\node-adodb\lib\spawn.js :120:37) 在 ChildProcess.emit (events.js:198:13) 在可能关闭 (internal/child_process.js:982:16) 在 Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)进程:{ 代码:-2147467259,消息:'无法识别的数据库格式 \'C:\\Users\\Admin\\Desktop\\Aawsoft\\MobileApp\\android_app\\accessdb.accdb\'。' },退出代码:0 }
    • 我以为你的数据库是.mdb!此软件包仅支持 .mdb 数据库。您是否使用了以下软件包?这个包将支持 .accdb 数据库。 npmjs.com/package/adonis-adodb
    【解决方案2】:

    你可以试试 Node-ADODB 包 https://www.npmjs.com/package/node-adodb

    更新

    看起来您将在生产环境中的 Windows 环境中托管您的应用程序。您可以尝试使用包https://www.npmjs.com/package/winax提供的“ActiveXObject”

    /* Declare Database Setup Options Here
    ************************************************/
    var dbOptions = {
      dbPath: "sample-people.accdb",
      dbUserID: "",
      dbPassword: ""
    };
    /* MS Access API
     ************************************************/
    var MSAccess = function(dbOptions) {
      this.dbOptions = dbOptions;
      this.myConn = new ActiveXObject("ADODB.Connection");
      this.connStr = "";
      this.sessionStr = "";
      this.connOption;
      var providers = ['Microsoft.ACE.OLEDB.12.0', 'Microsoft.Jet.OLEDB.4.0'],
        connError = [];
    };
    

    参考:https://rtmccormick.com/2015/11/21/connect-to-ms-access-database-with-javascript-hta-app/

    【讨论】:

    • { 错误:在 ChildProcess.child.on.exitCode 处产生 C:\WINDOWS\SysWOW64\cscript.exe 错误(C:\Users\Admin\node_modules\node-adodb\lib\spawn.js :120:37) 在 ChildProcess.emit (events.js:198:13) 在可能关闭 (internal/child_process.js:982:16) 在 Process.ChildProcess._handle.onexit (internal/child_process.js:259:5) 进程:{ 代码:-2147467259,消息:'无法识别的数据库格式 \'C:\\Users\\Admin\\Desktop\\Aawsoft\\MobileApp\\android_app\\accessdb.accdb\'。' },退出代码:0 }
    • 我已经用 ActiveXObject 方法更新了我的答案。这可能会帮助您解决问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    相关资源
    最近更新 更多