2016-11-09 3 views
0

Node.js 및 Heroku 시작하기. 나는 내 자신의 무언가를 구축하기 위해, 다음 코드를 이해하기 위해 노력하고 있어요 :Node.js와 Heroku

app.get('/db', function (request, response) { 
    pg.connect(process.env.DATABASE_URL, function(err, client, done) { 
    client.query('SELECT * FROM test_table', function(err, result) { 
     done(); 
     if (err) 
     { console.error(err); response.send("Error " + err); } 
     else 
     { response.render('pages/db', {results: result.rows}); } 
    }); 
    }); 
}); 
내가 자습서 또는 일부 의견이나 설명을 찾을 수 있습니다

?

비록 내가 약간의 추측을 할 수는 있지만,이 코드의 상당 부분은 매우 신비합니다.

현재 내 주요 문제는 다음과 같습니다

  1. 내가 'test_table 화상에서 선택 수 (*)'에 의해 그것을 대체하는 SQL 쿼리를 변경하면 어떻게됩니까? 그런 다음 어떻게 결과를 렌더링합니까?
  2. "완료();" 해야 할 것? 내가 수정하거나 사용할 수있는 것입니까 ?
  3. "request"매개 변수는 절대로 사용되지 않습니다. 어떤 점에서 뭔가를 사용할 수 있습니까?

답변

1

heroku를 다루기 전에 먼저 node.js의 웹 응용 프로그램에 대한 자습서를 살펴보고 마지막 질문에 대답해야합니다.

어떻게 작동 express.js, 웹 프레임 워크를 볼 수 있습니다.

그런 다음 node-postgre 설명서를 살펴보십시오.

//this initializes a connection pool 
//it will keep idle connections open for a 30 seconds 
//and set a limit of maximum 10 idle clients 
var pool = new pg.Pool(config); 

// to run a query we can acquire a client from the pool, 
// run a query on the client, and then return the client to the pool 
pool.connect(function(err, client, done) { 
    if(err) { 
    return console.error('error fetching client from pool', err); 
    } 
    client.query('SELECT $1::int AS number', ['1'], function(err, result) { 
    //call `done()` to release the client back to the pool 
    done(); 

    if(err) { 
     return console.error('error running query', err); 
    } 
    console.log(result.rows[0].number); 
    //output: 1 
    }); 
}); 

그리고 finanlly, 왜 그냥 SQL 쿼리를 변경 한 후 result 출력을 기록하고 당신이 무엇을 얻을 보이지 않는 : 당신은 두 번째 질문 here에 대한 답을 찾을 것인가?

+0

고맙습니다. 나는이 대답으로 많은 것을 배웠다. 단 하나의 질문 : console.log (result.rows [0] .number)의 결과를 어떻게 볼 수 있습니까? ?? 이것은 newbe 질문이어야합니다. – Michel

+0

@Michel 최선의 방법은 별칭을 사용하는 것입니다. 'SELECT count (*) as count FROM test_table' 그런 다음'result.rows [0] .count'로 카운트를 얻을 수 있습니다. –

+0

네, 위의 게시물을 읽은 후 이것은 정확하게 이해할 수 있었지만 그 결과를 얻지 못했기 때문에 나는 내가 시험 할 때를 기대했다. 그런 다음 console.log를 사용하여 갔는데, 실수를 저 지르거나 잘못된 장소를보고 있어야하고 마지막 코멘트를 쓰기로 결정했습니다. – Michel