前提・実現したいこと
Node.js、Expressを使用し、ローカルのMySQLへ接続の検証を行ったところ、接続出来ずに困っています。
ご助言いただけないでしょうか。
■バージョン
<データベース>
mysql Ver 8.0.15 for osx10.13 on x86_64 (Homebrew)
<ライブラリ>
"mysql": "^2.17.1"
"express": "^4.17.1"
発生している問題・エラーメッセージ
エラーが出ているわけではなく、connection後、クエリを実行する箇所に入っていかないため、原因がどこであるか分からない状態です。
該当のソースコード
JavaScript
1const router = require('express').Router(); 2const mysql = require('mysql'); 3 4const mysql_setting = { 5 host: 'localhost', 6 user: 'root', 7 password: 'root', 8 database: 'test', 9 port: 3306 10}; 11 12router.post('/login', (req, res) => { 13 // DB接続 14 try { 15 const connection = mysql.createConnection(mysql_setting); 16 console.log('connection', connection); 17 connection.connect((err) => { 18 if (err) throw err; 19 console.log('connected to mysql'); 20 }); 21 connection.query('select * from mst_user', function (error, results, fields) { 22 # ここから下が実行されない 23 console.log('クエリ実行された'); 24 console.log('results', results); 25 if (error) throw error 26 res.send(results[0]); 27 }); 28 connection.end(); 29 } catch(error) { 30 console.log('error', error); 31 } 32 33 res.status(200).end(); 34}); 35 36module.exports = router; 37
試したこと
- connection.queryの中に入らず、connection.end()にいってしまう
- connectionの中身を確認したところ、state:"disconnected"となっていたのですが、何が問題なのかがわからないです(接続できなかったのであれば、エラーとならないのも不明です)
- NodeのmysqlからMySQL 8へ接続できないという記事があったため、mysql_native_password認証へ変更しましたが、解決しませんでした
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/05 09:43