NodeJS에서 pg-promise를 작동시켜 PostgreSQL 데이터베이스에 연결할 수있게하려고합니다. 노드와 포스트그레시 모두 Ubuntu를 실행하는 codeanywhere 노드 상자에서 실행됩니다.pg-promise를 사용하여 NodeJS에서 PostgreSQL 데이터베이스를 쿼리 할 수 없습니다 - "관계가 없습니다"
여기에 관련 코드는 다음 /var/log/postgresql/postgresql-9.3-main.log
에 다음
{ [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 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
인쇄를 실행
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)
관계가 반드시 존재합니다.
무엇이 누락 되었습니까?
편집 참조; 테이블을 'users'라고 부른다. – Menasheh
당신이리스트하고있는 것은 데이터베이스가 아니라'postgres' 데이터베이스에있는'users' 테이블입니다. 'postgres ='프롬프트 때문에 postgres db에 있다는 것을 알 수 있습니다. – Soviut
한숨 ... 그래서 그것은 사용자 이름 이었기 때문에 자동적으로 포스트그레스라고 불렀습니다. – Menasheh