前提・実現したいこと
データベース(MySQL)から取得した値をejs内の配列に代入したいです。
発生している問題・エラーメッセージ
TypeError: C:\Users\user\Desktop\sample\views\index.ejs:27 25| 26| <% const tangolist = [] %> >> 27| <% items.forEach((item)=>{%> 28| <% tangolist.push(item.tango);%> 29| <%});%> 30| items.forEach is not a function
該当のソースコード
app.js____________________________________________________ app.get('/index', (req, res) => { connection.query( 'SELECT * FROM tango' (error, results) => { console.log(results); res.render('index.ejs',{items: results}); } ); }); index.ejs________________________________________________ 26 <% const tangolist = [] %> 27 <% items.forEach((item)=>{%> 28 <% tangolist.push(item.tango);%> 29 <%});%> 30 31 <%for(let i = 0 ;i< 10;i++ ){%> 32 <%var r = Math.floor(Math.random() * tangolist.length);%> 33 <div class="box"><%=tangolist[r]%></div> 34 <%}%>
試したこと
エラー文の内容とindex.ejs側の27~29行目を削除することでエラーで落ちず画面を表示することができることから、itemsが配列orオブジェクトとして認識されていないのかなと考えています。
しかし、renderメソッド第2引数に{プロパティ : 値}と書くことで、EJS側に値をオブジェクトとして渡すことができると考えていたのでなぜ今回TypeErrorが出ているのかよくわかりません...。
あなたの回答
tips
プレビュー