【发布时间】: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