Node.js Express テーブル取得データをブラウザで表示させる方法
参考にしたサイト
https://reffect.co.jp/node-js/express-js-connect-mysql#i-2
ほぼサイトの通りに書いたのですがうまくいかず、
"response.send(result);"の部分に入りませんでした
何かありそうな原因がわかれば教えて頂きたいです!
補足
InsertはDBに反映されるのでうまくいっていると思いますが、その際のresultもselect同様、受け取れませんでした。
不正な値を入力しても"_err = "error";"の中に入りませんでした
ログの取り方が調べてもわからなかったため、画面に直接表示して成功しているかどうか確認しています。
追記
->不正な値を入力しても"err = "error";"の中に入りませんでした
node_modules,package-lock.json,package.jsonの場所が同階層になっておらず、同階層に直したら"err = "error";"の中には入るようになりました。
しかしselectについてはまだ治りませんでした
追記2
↓の処理をapp.getの外に出してresultを別の変数に詰めたら入るようになりましたが、そういう使い方はしたくないです
const sql = "select * from `users`"
con.query(sql, function (err, result, fields) {
// ↓ ここに入りたい
if (err) {
response.send("select error");
};
response.send(result);
});
var http = require('http');
const express = require('express');
const app = express();
const mysql = require('mysql');
const con = mysql.createConnection({
host: 'xxx.xxx.xxx.xxx',
user: 'xxx',
password: 'xxxx',
database: 'xxxx'
});
var _err = "";
con.connect(function(err) {
if (err) {
_err = "error";
};
console.log('Connected');
});
app.get('/', (request, response) => {
const sql = "select * from `users`"
con.query(sql, function (err, result, fields) {
// ↓ ここに入りたい
if (err) {
response.send("select error");
};
response.send(result);
});
response.send(_err);
});
app.listen();