我试图让 pg-promise 在 NodeJS 中工作以允许我连接到我的 PostgreSQL 数据库。node 和 postgre 都在运行 Ubuntu 的 codeanywhere 节点框中运行。
以下是相关代码:
var pgp = require('pg-promise')();
var bot = new TelegramBot(token, { polling: true });
var db = pgp({
host: 'localhost',
port: 5432,
database: 'users',
user: 'postgres',
password: '(pass here)'
});
db.any("select * from users")
.then(function (data) {
console.log(data);
})
.catch(function (error) {
console.log(error);
});
运行node bot.js
打印以下内容:
{ [error: relation "users" does not exist]
name: 'error',
length: 96,
severity: 'ERROR',
code: '42P01',
detail: undefined,
hint: undefined,
position: '15',
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: undefined,
table: undefined,
column: undefined,
dataType: undefined,
constraint: undefined,
file: 'parse_relation.c',
line: '984',
routine: 'parserOpenTable' }
并将以下内容打印到/var/log/postgresql/postgresql-9.3-main.log
:
2016-09-29 23:09:29 EDT ERROR: relation "users" does not exist at character 15
我做错了什么?我想它应该是 db.any() 的东西,因为下面的代码确实有效:
//db.any("select * from users")
db.connect()
.then(function (data) {
console.log(data);
})
.catch(function (error) {
console.log(error);
});
输出是一个看起来近似于db
对象的东西的返回,但这不是我需要的......
我见过其他提到大写的stackoverflow问题。具体来说,他们说 postgresql 将使您的输入全部小写,不带双引号。消除任何此类相关性概念:
postgres=# \dt
List of relations
Schema | Name | Type | Owner
--------+-------+-------+----------
public | users | table | postgres
(1 row)
这种关系确实存在。
我错过了什么?