【问题标题】:Can't get response from Firebird in Node Express Server无法从 Node Express 服务器中的 Firebird 获得响应
【发布时间】:2021-05-01 00:42:35
【问题描述】:

我正在尝试在我的 node express 服务器和来自外部服务器的 Firebird 数据库之间建立连接。我正在使用这个node-firebird

这是我在 index.js 上的代码:

require("dotenv").config(); //Environment variables
const express = require("express");
const morgan = require("morgan");
const Firebird = require('node-firebird');

//Express Initilization
const app = express();

//MORGAN Configuration
app.use(morgan("dev"));

app.use( express.json() );

app.use( express.static("public") );

const options = {

    "host" : 'externalddns.ddns.net',
    "port" : 3050,
    "database" : 'c:/database/databaseName.fb',
    "user" : 'SYSDBA',
    "password" : 'masterkey',
    "lowercase_keys" : false,
    "role" : null,
    "pageSize" : 4096     

};


Firebird.attach(options, function(err, db) {
 
    if (err) {
        throw err;
    }

    const query = "SELECT * FROM MYTABLE";
    
    db.query(query, function(err, result) {
        if(err){
            console.log(err);
        }
        console.log(result);
        // Close the connection
        db.detach();
    });
 
});
 

app.listen(process.env.PORT, () => {
    console.log("Server running on port " + process.env.PORT);
});

我已经在外部站点路由器和防火墙上打开了 3050 端口。连接正常,因为如果我为数据库选择另一个路径并且我执行Firebird.create(.....),则数据库文件正在指定的路径上创建。但我没有从db.query 上的 console.log(result) 得到任何回复,甚至没有收到错误消息。控制台上唯一的消息是 Server running on port MYPORT

如果我更改查询以选择数据库中不存在的表,我可以强制出错。所以代码正在运行,但是当一切正常时,我没有得到任何响应。

数据库文件没问题,因为它正在为另一个服务工作。

是否有可能是我的电脑上的某些东西阻止了响应?像防火墙什么的。任何帮助将不胜感激。

【问题讨论】:

标签: node.js express firebird node-firebird


【解决方案1】:

我已经知道问题出在哪里了。该库适用于 firebird 2.5+ 版本,而我的 firebird 服务器版本是 2.1。 -_-

【讨论】:

    猜你喜欢
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 2017-06-25
    • 2015-11-14
    • 1970-01-01
    相关资源
    最近更新 更多