2013-03-07 4 views
0

노드에 express가있는 앱을 사용하고 있습니다. PostgreSQL (NoSQL 경험이 전혀 없음)을 사용하는 아이디어가 나오기 전에 다른 DBMS에 대해 생각했지만 예기치 않은 오류로 인해 나를 괴롭 히고 있습니다.Node.js 및 postgresql 문제

나는 그가 로그인 할 때 사용자가 존재하는지 확인하기 위해 노력하고있어,하지만 Select 문이 작동하지 않는 이유를 알고하지 않습니다 : 초기 페이지 렌더링해야이 후

var query = client.query('SELECT "name" FROM "User" WHERE "pass" = $1', [req.body.password]); 
console.log(query.toString()); 
query.on('row', function(row) { 
    console.log('user "%s"', row.name); 
}); 

(그것을 실제로 공장). 나는 node-postgres 드라이버를 사용하고 있습니다.

만약 내가 client.query('SELECT * FROM "User"');과 같은 것을 넣으면 데이터베이스가 완벽하게 작동합니다 (그리고 그 동작이 필요하지 않습니다). 나는 PostgreSQL 식별자 문제에 대해 읽었지만 그럼에도 불구하고 계속 발생하고있다.

+0

변수를 작은 따옴표로 묶어야합니다. –

+0

@ Jakub, 작은 따옴표 붙이기'var query = client.query ("SELECT 'name'FROM '사용자'WHERE 'pass'= $ 1", [req.body.password]);'나에게 구문 오류가 발생했습니다 ' 사용자 ', 이유를 모릅니다. @mu, [드라이버] (https://github.com/brianc/node-postgres/wiki/Prepared-Statements)의 문서에는 준비된 문장 (반복 사용 가능) 작동 방법이 나와 있습니다. – jontxu

+0

이름 테이블은 큰 따옴표로 묶어야하며 작은 따옴표로 묶어야합니다. 따옴표를 벗어나야합니다. 당신은 또한 두 배 달러 따옴표를 할 수 있었다 (http://sqlfiddle.com/#!1/6ccc5/1108). –

답변

0

좋아, 사용자 테이블이 존재하는 것으로 나타 났으며 작성한 테이블은 대소 문자를 구분합니다. 그것은 잘 알고 있습니다.

psql에서 select * from user을 시도했지만 현재 사용자를 반환했습니다. 나는 select * from "User"을 시도하고 틀렸다. 웃기는 일.

관련 문제