2016-07-21 4 views
0

基本的に私は取得要求があるたびに私のルータの中でクエリを作りたいと思います。 私はこれを試してみましたが、いくつかの亜種ノードエクスプレスでルータを取得

var express = require('express'); 
var router = express.Router(); 
var pg = require('pg'); 

router.get('/:listaId', function (req, res, next) { 
if (error) return next(error); 
var cc = new pg.Client({ 
    user: "@@", 
    password: "@@", 
    database: "@@", 
    port: 5432, 
    host: "@@", 
    ssl: true 
}); 
client.connect(function (err) { 
    if (err) { 
     return console.error('could not connect to postgres', err); 
    } 
    cc.query('select * from userls', function (err, result1) { 

     console.log("Ok", result1.rows, err) 

    }) 
}) 
res.render('mas', { 
    title: 'Lista', 
    subtitle: 'CreateBla', 
    subs: 'a', 
    lev: 's' 
})}) 

しかし、クエリが呼び出されることはありません、基本的には、レンダリングに直接行きます。

レンダリングする前にクエリの答えを待つことはできますか? それは間違ったアプローチですか?

答えて

1

レンダリングする前に質問の回答を待つことはできますか?それは間違って アプローチですか?また、あなたのコードを使用すると、1つの場所でclientを使用して、別の中ccしていることを少し奇妙に見える

var express = require('express'); 
var router = express.Router(); 
var pg = require('pg'); 

router.get('/:listaId', function (req, res, next) { 
    if (error) return next(error); 
    var cc = new pg.Client({ 
     user: "@@", 
     password: "@@", 
     database: "@@", 
     port: 5432, 
     host: "@@", 
     ssl: true 
    }); 
    client.connect(function (err) { 
     if (err) { 
      return console.error('could not connect to postgres', err); 
     } 
     cc.query('select * from userls', function (err, result1) { 

      console.log("Ok", result1.rows, err) 
      res.render('mas', { 
       title: 'Lista', 
       subtitle: 'CreateBla', 
       subs: 'a', 
       lev: 's' 
      }) 

     }) 
    }) 
}) 

:あなたは、あなたのデータが知られているクエリのコールバック内res.render()を配置する必要があり

cc.query()コールバックのエラーをチェックする必要があります。レンダリングでクエリ結果を使用していると思われます。

+0

私はすべてクライアントに変更しましたが、それはcmd + zのために間違いでしたが、とにかく私はコードを試したが、依然としてクエリ( "OK")の中に決して入力せず、今もページをレンダリングしません... – BioShock

+0

接続コールバックにも到達しますか?また、実際にはクエリを実行する前に接続コールバックを待つ必要はありません。これを見てください[例](https://github.com/brianc/node-postgres/wiki/Client#simple-query-with-row-callback) – Will

関連する問題