Express GeneratorからMAMPのMySQLにアクセスしてデータを取得したいです
MAMPのMySQLにアクセスしても、ロードが止まずにデータを取得できません。
ターミナルにはGET/mysql --ms--とだけ出ています。
loadが終わりますと下記の画像の通りです。
原因を探しています。お分かりになられる方ご教授お願いします。
本日が初の質問でして、慣れていないこともあろうかと思います。
失礼なこともあるかと思いますが、よろしくお願いします。
発生している問題・エラーメッセージ
terminal
1GET /mysql - - ms - -
ブラウザ
phpMyadmin
該当のソースコード
app.js 必要ないかもしれないですが全コードです
js
1//app.js 2 3//expressのエラーに関するモジュール 4var createError = require('http-errors'); 5var express = require('express'); 6//ファイルパスを扱う 7var path = require('path'); 8//cookieをparseする 9var cookieParser = require('cookie-parser'); 10//httpリクエストのログ出力に関する 11var logger = require('morgan'); 12//session 13var session = require('express-session'); 14//database 15// var mysql = require("mysql"); 16var ajax = require('./routes/ajax'); 17 18//app.jsにまとめて記述していたroutingをそれぞれに分けて、呼び出している 19//app.js(本ファイルからみたパス) 20//routes/index.jsファイル 21var indexRouter = require('./routes/index'); 22var usersRouter = require('./routes/users'); 23var helloRouter = require('./routes/hello'); 24var formRouter = require('./routes/form'); 25var mysql = require('./routes/mysql'); 26//ajax 27//expressオブジェクトの作成と基本設定 28var app = express(); 29 30// view engine setup 31//テンプレートファイルが保管される場所とテンプレートエンジンの種類 32app.set('views', path.join(__dirname, 'views')); 33app.set('view engine', 'ejs'); 34 35//モジュールの機能を呼び出す 36app.use(logger('dev')); 37//bodyParserでURLエンコーディングとJSONエンコーディングをonにする機能 38app.use(express.json()); 39app.use(express.urlencoded({ extended: false })); 40 41app.use(cookieParser()); 42app.use(express.static(path.join(__dirname, 'public'))); 43//ajax 44app.use('/ajax', ajax); 45 46//sessionのオブジェクト 47//モジュールを利用するためにはroutingの記述よりも前に記述する 48var session_opt = { 49 secret: 'keybord cat', 50 resave: false, 51 saveUninitialized: false, 52 cookie: {maxAge: 60*60*1000} 53}; 54app.use(session(session_opt)); 55 56//特定のアドレスにアクセスした時の処理も設定できる 57//indexRouterとはindex.jsの内容の変数 58//'/'とはurlパスのこと 59//app.jsで扱うルーテイングは大元のurlのみであって,その先の分岐したurlに関してはスクリプト側で対応する 60app.use('/', indexRouter); 61app.use('/users', usersRouter); 62app.use('/hello', helloRouter); 63app.use('/form', formRouter); 64app.use('/mysql', mysql); 65 66// catch 404 and forward to error handler 67app.use(function(req, res, next) { 68 next(createError(404)); 69}); 70 71// error handler 72app.use(function(err, req, res, next) { 73 // set locals, only providing error in development 74 res.locals.message = err.message; 75 res.locals.error = req.app.get('env') === 'development' ? err : {}; 76 // render the error page 77 res.status(err.status || 500); 78 res.render('error'); 79}); 80//express generatorでやるおまじない 81module.exports = app; 82
mysql.ejs
js
1//mysql.ejs 2 3<!DOCTYPE html> 4<html lang="ja"> 5 6<head> 7 <meta charset="UTF-8"> 8 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 9 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 10 <title><%= title %></title> 11 <link rel="stylesheet" href="/stylesheets/style.css"> 12 <style> 13 body { 14 background-color: lightgray; 15 } 16 </style> 17</head> 18<body> 19 <head> 20 <h1><%= title %></h1> 21 </head> 22 <div role="main"> 23 <table> 24 <% for(var i in content){ %> 25 <tr> 26 <% var obj = content[i];%> 27 <th><%= obj.id %></th> 28 <td><%= obj.name %></td> 29 <td><%= obj.mail %></td> 30 <td><%= obj.age %></td> 31 </tr> 32 <% } %> 33 </table> 34 </div> 35</body> 36</html>
mysql.js
js
1//mysql.js 2 3var express = require("express"); 4var router = express.Router(); 5var mysql = require('mysql'); 6 7var mysql_setting = { 8 host :'localhost', 9 user :'root', 10 password: '', 11 database:'my-nodeapp-db', 12 port: 8889 13}; 14 15/* GET home page. */ 16router.get("/", (req, res, next) =>{ 17 var connection = mysql.createConnection(mysql_setting); 18 connection.connect(); 19 connection.query('SELECT * from mydata', 20 function(error,results, fields){ 21 if(error == null){ 22 var data = {title:'mysql', content: results}; 23 res.render('mysql', data); 24 } 25 }); 26 connection.end(); 27}); 28 29module.exports = router; 30
packge.json
js
1{ 2 "name": "ex-gen-app", 3 "version": "0.0.0", 4 "private": true, 5 "scripts": { 6 "start": "node ./bin/www" 7 }, 8 "dependencies": { 9 "cookie-parser": "~1.4.4", 10 "debug": "~2.6.9", 11 "ejs": "~2.6.1", 12 "express": "~4.16.1", 13 "express-session": "^1.16.2", 14 "http-errors": "~1.6.3", 15 "jquery": "^3.4.1", 16 "morgan": "~1.9.1", 17 "mysql": "^2.17.1", 18 "xml2js": "^0.4.22" 19 } 20} 21
MAMP
試したこと
- port:8889を追加しました
- var mysql = require('./node_modules/mysql');
補足情報(FW/ツールのバージョンなど)
node version: v10.16.0
Express version: 4.16.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。