我正在尝试使用ajax从我的本地数据库中获取一个随机项目。我第一次执行ajax请求时,我得到一个随机项,之后每个ajax请求返回相同的项目。
var express = require('express')
var app = express();
var customers = require('./module');
var pg = require('pg');
var conString = "postgres://postgres:pass@localhost/test";
var client = new pg.Client(conString);
app.get('/res', function(req, res) {
client.connect(function(err) {
if(err) {
return console.error('could not connect to postgres', err);
}
client.query('SELECT * FROM t_items OFFSET random()*300 LIMIT 1', function(err, result) {
if(err) {
return console.error('error running query', err);
}
console.log(result.rows[0]);
res.contentType('json');
res.send({ some: result.rows[0] });
client.end();
});
});
});
app.set('view engine', 'jade');
app.use(express.static(__dirname + '/public'));
app.set('port', (process.env.PORT || 5000))
app.use(express.static(__dirname + '/public'))
app.get('/',function(req, res){
res.render("index");
});
app.listen(app.get('port'), function() {
console.log("Node app is running at localhost:" + app.get('port'))
})
如果我尝试将其包装在app.post('/ req')中.... 我得到无法连接到postgres [错误:连接终止] 我尝试过使用客户端池,但仍然存在同样的问题
答案 0 :(得分:0)
只需在app.get函数中移动您的查询(' / res',函数(req,res)
发生这种情况是因为db查询只执行一次。为了防止它 - 将你的代码移到/ res路由中,它将在每次请求时执行。