问题:尝试从postgres db中获取node.js中的数据-至少要控制台,以便稍后将其呈现为HTML
数据库具有表名:heroku上的学生,并且具有记录
在我的macOS上也本地安装了postgres,其中在简单的表students中安装了简单数据
我无法获取任何数据,没有错误,也不知道如何跟踪它!
尝试与池,客户端建立连接。.也完全使用了heroku指南here
从字面上看,其他用户最常遇到的一切
如果我在终端中回显$ DATABASE_URL,则DATABASE_URL环境变量正常:
postgres://xnlkikdztxosk:kuadf76d555dfab0a6c159b8404e2ac254f581639c09079baae4752a7b64a@ec3-52-120-48-116.compute-1.amazonaws.com:5432/uytnmb7fvbg1764
process.on('uncaughtException', function (err) {
console.log(err);
});
跟踪此类问题的指南或步骤将受到高度赞赏
app.js file:
const express = require('express')
const bodyParser = require('body-parser')
const { Client } = require('pg');
const app = express()
const PORT = 3000
app.use(bodyParser.json())
app.use(
bodyParser.urlencoded({
extended: true,
})
)
const client = new Client({
connectionString: process.env.DATABASE_URL,
ssl: {
rejectUnauthorized: false
}
});
client.connect();
app.get('/', (req, res) => {
res.json({ info: 'Info: This is the root directory' });
console.log('main directory')
})
app.get('/students', (req, res) => {
client.query('SELECT * FROM students;', (err, res) => {
if (err) throw err;
for (let row of res.rows) {
console.log(JSON.stringify(row));
console.log('WHOOOOOO, finally!');
}
client.end();
});
});
app.listen(PORT, function(){
console.log('Server running on port 3000');
});
答案 0 :(得分:0)
我认为这里的问题是您没有在$sql = "SELECT * FROM $table WHERE name1 OR name2=".$_SESSION['user_id'];
路由中发送任何响应。请注意,在/students
路由中,您有一个/
发送了一个响应,但在res.json
路线我看不到您的回复发送到哪里,这就是您永远等待的原因
答案 1 :(得分:0)
好吧,由于某种原因,我的节点版本是v14,不确定如何发生,但是节点站点中最稳定的版本是12,所以我安装了v12,并且到pg的连接在heroku上本地和远程均可。
但是,这可能会为您触发类似我所面临的其他问题:
DeprecationWarning: Implicit disabling of certificate verification is deprecated and will be removed in pg 8. Specify `rejectUnauthorized: true` to require a valid CA or `rejectUnauthorized: false` to explicitly opt out of MITM protection.
虽然没什么大不了的,但是连接在解决之前一直有效。