2016-11-14 17 views
0

データベースから選択クエリを実行しようとしていて、結果を印刷しようとしています。しかし、私はインデックスページに表示されないコンソールの結果を参照してください。 (Hovewer私はコンソールに結果が表示されますが、それも正しく表示されません。私は2行のdbを持っていますが、私は行ごとに3行を参照してください:コンソール結果:2X3 = 6行。質問の終わり。 app.jsNode.js - SQLからの結果を印刷

app.use('/', routes, function(req, res){ 
    pg.connect(connect, function(err, client, done){ 
    if(err){ 
     return console.error('errrr', err) 
    } 
    client.query('select * from recipes', function(err, result){ 
    if(err){ 
     return console.error('error running query', err); 
    } 
    console.log(result.rows); 
    res.render('index.njk', { recipes: result.rows}); 
    done(); 
    }); 
    }); 
    }); 

コードコードはindex.njk

<ul> 
    {% for name, item in recipes %} 
    <li>{{ name }}: {{ item.name }}</li> 
    {% endfor %} 
</ul> 

this is result of the console であなたは私がそれを修正するために助けてくださいことはできますか?

答えて

0

私はそれが正しい方法であるとは確信していませんが、今は正常に動作しています。それが正しい方法でない場合は、私にそれを修正させてください。

router.get('/', function(req, res){ 
    pg.connect(connect, function(err, client, done){ 
    if(err){ 
    return console.error('errrr', err) 
    } 
    client.query('select * from recipes', function(err, result){ 

    if(err){ 
     return console.error('error running query', err); 
    } 
    if(result.rows.length > 0) { 
     res.render('index.njk', { recordResult: result.rows}); 
     console.log(result.rows); 
    }else { 
     console.log('No rows found in DB'); 
     } 
    done() 
    }); 
    }); 
}); 
0

result.rowsは、2つの値を持つ配列の配列です(コンソールの画像から)。したがって、index.njkの値をループする間、レシピは配列の配列であり、name属性を持つ項目は含まれません。

あなたがレシピに設定した場合:クイックフィックスを提供する必要がありますresult.rows [0]:

res.render('index.njk', { recipes: result.rows[0]});

をこれが、大丈夫である、あなたは配列のあなたの配列の最初の要素を取得することができますので、内に保持されている配列は1要素しかありません(実際には2つの要素が必要です)。これを行う前にresult.rows.length> 0をチェックして、境界を越えてエラーにならないようにしてください。私はindex.jsにコードブロックの下に使用して代わりのapp.js.を使用して、私の問題を解決した

if(result.rows.length > 0) { 
    res.render('index.njk', { recipes: result.rows[0]}); 
}else { 
    console.log('No rows found in DB'); 
} 
+0

残念ながら、それは動作しませんでした –

+0

他のアイデアはありますか? –

関連する問題