0
我已经在一个月前开始使用NodeJS。由于我没有那么多经验,所以运行代码并不总是像想要的那样。在某些方面,我无法通过节点的pg
包连接到我的PostgreSQL。 (当我通过PDO在PHP连接好知道它的工作原理)从NodeJS连接到PostgreSQL不起作用
我做这个(简单的)路线/控制器
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文件夹我有一个包含config.json文件中的所有参数的连接
{
"uname": "username",
"database": "myDb",
"host": "localhost",
"password": "[email protected]",
"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);