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

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

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

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

Node.js

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

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

解決済

1回答

714閲覧

Express GeneratorからmampのMySQLにアクセスしてデータを取得したいです

3dkoi

総合スコア14

MySQL

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

Node.js

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

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

0クリップ

投稿2019/09/16 01:07

Express GeneratorからMAMPのMySQLにアクセスしてデータを取得したいです

MAMPのMySQLにアクセスしても、ロードが止まずにデータを取得できません。
ターミナルにはGET/mysql --ms--とだけ出ています。
loadが終わりますと下記の画像の通りです。
原因を探しています。お分かりになられる方ご教授お願いします。
本日が初の質問でして、慣れていないこともあろうかと思います。
失礼なこともあるかと思いますが、よろしくお願いします。

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

terminal

1GET /mysql - - ms - -

ブラウザ

ブラウザ

phpMyadmin

mysql

該当のソースコード

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

mamp

試したこと

  • port:8889を追加しました
  • var mysql = require('./node_modules/mysql');

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

node version: v10.16.0
Express version: 4.16.1

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

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

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

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

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

guest

回答1

0

自己解決

解決しました。
結論は passwordをrootと定義するでした。

投稿2019/09/16 10:22

3dkoi

総合スコア14

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問