前提・実現したいこと
Node.js,Express, Jacascript, ejs, postgresを使って、データベースのテーブル一覧をページに表示させたいが、エラーが出てしまいます。
データベースにはテーブルが作成してあり、データも入っております。エラー内容はforEach が関数として認められないという内容です。
サーバを起動すると、successと表示されるため、DBとの接続は成功しているようです。
初心者のためまったくの基本的なミスかもしれませんが、ご教示いただけると嬉しいです。
発生している問題・エラーメッセージ
items.forEach is not a function
22| </div> 23| <ul class="table-body"> >> 24| <% items.forEach((item) => { %> 25| <li> 26| <div class="item-data"> 27| <span class="id-column"><%= item.id %></span> items.forEach is not a function
該当のソースコード
>main.js const express = require('express'); const ejs = require('ejs'); const app = express(); app.set("view engine", "ejs") const { Client } = require('pg') const client = new Client({ //接続情報 }); client.connect((err) => { if (err) { console.log('error connecting: ' + err.stack); return; } console.log('success'); }); app.get('/', (req, res) => { client.query( 'SELECT * FROM items', (error, results) => { res.render('index.ejs', {items:results}); } ); }); app.listen(3000); >ここからindex.ejs <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>LIST APP</title> <script src="/send_url.js"></script> </head> <body> <header> <a class="header-logo">LIST APP</a> </header> <div class="container"> <div class="container-header"> <h1>買い物リスト</h1> <a href="/new" class="new-button">+ 新規登録</a> </div> <div class="index-table-wrapper"> <div class="table-head"> <span class="id-column">ID</span> <span>買うもの</span> </div> <ul class="table-body"> <% items.forEach((item) => { %> <li> <div class="item-data"> <span class="id-column"><%= item.id %></span> <span class="name-column"><%= item.task %></span> </div> </li> <% }) %> </div> </ul> </div> </div> </body> </html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/07 02:40