【发布时间】:2016-08-08 02:51:35
【问题描述】:
我大约一个月前开始使用 NodeJS。由于我没有太多经验,因此运行代码并不总是如愿以偿。在某种程度上,我无法使用节点的 pg 包连接到我的 PostgreSQL。 (很高兴知道当我通过 PHP 中的 PDO 连接时它可以工作)
我已经做了这个(简单的)路由/控制器
var pg = require('pg');
var config = require('../config');
module.exports = function(app) {
app.get('/db-get-formules', function(req, res) {
var results = [];
var pgClient = new pg.Client(config.getDbConnectionString());
pgClient.connect();
pgClient.query('SELECT * FROM formules ORDER BY formule_id');
pgClient.on('row', function(row) {
results.push(row);
})
pgClient.on('end', function() {
done();
console.log(results);
res.json(results);
})
});
};
这是我在配置中的 index.js 文件:
var configValues = require('./config');
module.exports = {
getDbConnectionString: function() {
return 'postgres://' + configValues.uname + ':' + configValues.password + '@' + configValues.host + ':' + configValues.port + '/' + configValues.database;
}
}
在同一个配置文件夹中,我有一个 config.json 文件,其中包含要连接的所有参数
{
"uname": "username",
"database": "myDb",
"host": "localhost",
"password": "P@ssw0rd",
"port": "5432",
"idleTimeoutMillis": "30000"
}
如果我运行这个/db-get-formules 页面,页面会继续加载(旋转)并且什么都没有发生。我做错了什么?
哦,只是为了向您提供我的完整代码,我在根目录中有一个 server.js 文件
var express = require('express');
var app = express();
var queryFormules = require('./controllers/queryFormules');
var port = process.env.PORT || 3000;
app.use('/app', express.static(__dirname + '/public/app'));
app.use('/server', express.static(__dirname + '/public/server'));
queryFormules(app);
// application -------------------------------------------------------------
app.get('/', function(req, res) {
res.sendFile(__dirname + '/public/index.html'); // load the single view file (angular will handle the page changes on the front-end)
});
app.listen(port);
【问题讨论】:
标签: node.js postgresql