質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Q&A

解決済

1回答

481閲覧

Node.jsとMySQLの接続ができない

zaytove

総合スコア1

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

0クリップ

投稿2021/09/04 17:02

編集2021/09/05 08:01

前提・実現したいこと

Node.jsとMySQLを接続してデータベースを取得したいのですがどうやっても未定義となってしまいます。
初心者なのでツッコミどころあると思いますがご教示いただけると幸いです。

Node.js

23| <ul class="table-body"> 24| >> 25| <% lists.forEach((list) => { %> 26| <li> 27| <div class="list-data"> 28| <span class="list-name"><%= lists.id %></span> lists is not defined

該当のソースコード

javascript

1const express = require('express'); 2const mysql = require('mysql'); 3const app = express(); 4 5app.use(express.static('public')); 6 7const connection = mysql.createConnection({ 8 host: 'localhost', 9 user: 'root', 10 password: 'password', 11 database: 'database' 12}); 13 14app.get('/', (req, res) => { 15 connection.query('SELECT * FROM lists', 16 (error, results) => { 17 console.log(results); 18 res.render('home.ejs', {lists: results}); 19 } 20 ); 21}); 22 23app.listen(3000);

html

1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="utf-8"> 5 <title>LIST</title> 6 <link rel="stylesheet" href="/css/style.css"> 7 </head> 8 <body> 9 <div class = 'home-wrapper'> 10 <div class = 'home-top'> 11 <div class = 'home-title'> 12 <h1 class = 'title'>MY LIST</h1> 13 </div> 14 <div class = 'home-list'> 15 <li>1</li> 16 <li>2</li> 17 <li>3</li> 18 </div> 19 </div> 20 21 <div class = 'home-main'> 22 23 <% lists.forEach((list) => { %> 24 <li> 25 <div class="list-data"> 26 <span class="list-name"><%= list.id %></span> 27 </div> 28 </li> 29 <% }) %> 30 31 </div> 32 </div> 33 </body> 34 </html>

試したこと

誤字の可能性を考え探しましたが見当たりませんでした。

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/09/04 20:57

console.log(results); でどんな結果が表示されますか? たぶん、home.ejs の <%= lists.id %> のところは、lists.id じゃなくて list.id では。
zaytove

2021/09/05 07:52

ありがとうございます。 >たぶん、home.ejs の <%= lists.id %> のところは、lists.id じゃなくて list.id では その通りでした。修正します。ありがとうございます。 >console.log(results); でどんな結果が表示されますか? home.ejsの <% lists.forEach((list) => { %> <li> <div class="list-data"> <span class="list-name"><%= lists.id %></span> </div> </li> <% }) %> の部分を消すとエラーは発生せず undefined と表示されます。 しかし上記の文があるとやはりエラーが発生してしまいます。 原因で考えられるようなことがあればご教授宜しくお願いいたします。
hoshi-takanori

2021/09/05 08:04

results が undefined ということは SELECT 文が失敗してるってことですよね。 console.log(error); とかしたら原因が分かるかも。
zaytove

2021/09/05 08:34

結論からになりますがMySQLにログインを忘れていたという本当に初歩的なミスが原因で、解決しました。 昨日はログインしていたのでどこかにエラーがあったのですがお二方にご指摘いただいたところに原因がありログインしたら解決していたという感じです。 本当にありがとうございました。
guest

回答1

0

ベストアンサー

js

1app.get('/', (req, res) => { 2 res.render('home.ejs'); 3});

これはいりません

投稿2021/09/05 00:12

Waki285

総合スコア2014

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zaytove

2021/09/05 07:58

回答ありがとうございます。 この文を削除させていただきました。 しかし変わらずエラーは発生してしまいます。 原因で考えられるようなことがあればご教授いただけると幸いです。
zaytove

2021/09/05 08:35

結論からになりますがMySQLにログインを忘れていたという本当に初歩的なミスが原因で、解決しました。 昨日はログインしていたのでどこかにエラーがあったのですがお二方にご指摘いただいたところに原因がありログインしたら解決していたという感じです。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問