Node.jsとMySQLを実行するとundefinedと表示されます。

前提

プログラミング初学者です。
初投稿ですので至らない点が多いかもしれませんがよろしくお願いします。

またMac OSで実装しています。

発生している問題・エラーメッセージ

Node.jsとMySQL を接続したくProgateの記事を真似てコードを書きましたが、
実行するとundefinedと表示されます。
https://prog-8.com/docs/nodejs-mysql
↓実行結果

undefined

↓希望する実行結果

success {id:1, name:'にんじゃわんこ'}

該当のソースコード

App.js

js

1//パッケージ読み込み2const express = require('express');3const mysql = require('mysql');4 5const app = express();6 7// MySQLの接続情報8const connection = mysql.createConnection({9 host: 'localhost',10 user: 'root',11 password: '********',12 database: 'progate'13});14 15//MySQLへの接続ができていないときにエラーを表示16connection.connect((err) => {17 if (err) {18 console.log('error connecting: ' + err.stack);19 return;20 }21 console.log('success');22});23 24//HTTPリクエストを受け取る部分25app.get('/', (req, res) => {26 connection.query(27 'SELECT * FROM users',28 (error, results) => {29 console.log(results);30 res.render('hello.ejs');31 }32 );33});34 35app.listen(3000);

hello.ejs

ejs

1<h1>Hello World</h1>

MySQL

1mysql> show databases; 2+--------------------+ 3| Database | 4+--------------------+ 5| information_schema | 6| mysql | 7| performance_schema | 8| progate | 9| sys | 10+--------------------+ 115 rows in set (0.00 sec) 12 13mysql> use progate; 14Database changed 15 16mysql> show tables; 17+-------------------+ 18| Tables_in_progate | 19+-------------------+ 20| users | 21+-------------------+ 221 row in set (0.00 sec) 23 24mysql> describe users; 25+-------+---------+------+-----+---------+----------------+ 26| Field | Type | Null | Key | Default | Extra | 27+-------+---------+------+-----+---------+----------------+ 28| id | int(11) | NO | PRI | NULL | auto_increment | 29| name | text | YES | | NULL | | 30+-------+---------+------+-----+---------+----------------+ 312 rows in set (0.00 sec) 32 33mysql> select * from users; 34+----+-----------------------+ 35| id | name | 36+----+-----------------------+ 37| 1 | にんじゃわんこ | 38+----+-----------------------+ 391 row in set (0.00 sec) 40 41 42mysql> select user,host from mysql.user ; 43+---------------+-----------+ 44| user | host | 45+---------------+-----------+ 46| mysql.session | localhost | 47| mysql.sys | localhost | 48| root | localhost | 49+---------------+-----------+ 503 rows in set (0.00 sec)

package.json

1{ 2 "name": "list-app", 3 "version": "1.0.0", 4 "description": "", 5 "main": "index.js", 6 "scripts": { 7 "test": "echo \"Error: no test specified\" && exit 1" 8 }, 9 "keywords": [], 10 "author": "", 11 "license": "ISC", 12 "dependencies": { 13 "ejs": "^3.1.8", 14 "express": "^4.18.2", 15 "mysql": "^2.18.1" 16 } 17}

試したこと

調べたところ同じような問題を抱えている記事がありましたが、
私の問題は解決しませんでした。
https://teratail.com/questions/305536

また、localhos:3000を立ち上げるとHelloWorldと表示はされます。

コメントを投稿

0 コメント