初めまして。
SQL,Node.js,HTML.CSSの学習を始めてから5日の初心者です。
作成したフォーラムの内容をデータベースに追加したいのですが、どうにもうまく動かなく困っております。
データベースの内容を参照することはできるので接続はされています。
どなたか解決策をご存じの方いらっしゃいましたらご教授いただけると幸いです。
mysql Ver 14.14 Distrib 5.7.36, for Win64 (x86_64)
HTML.CSS
1<form action="/new" method="post"> 2 <ul class="table-body"> 3 <li> 4 <span class="id-column">名前</span> 5 <input class="text2" type="text" size="55" name="name"> 6 </li> 7 <li> 8 <span class="id-column">性別</span> 9 <input class="text2" type="text" size="55" name="gender"> 10 </li> 11 <li> 12 <span class="id-column">住所</span> 13 <input class="text2" type="text" size="55" name="address"> 14 </li> 15 <li> 16 <span class="id-column">番号名</span> 17 <input class="text2" type="text" size="55" name="address2"> 18 </li> 19 <li> 20 <span class="id-column">年齢</span> 21 <input class="text2" type="text" size="55" name="old"> 22 </li> 23 </ul> 24 </form>
Node.js,SQL
1app.post('/new', (req, res)=>{ 2 var name_db = req.body.name 3 var gender_db = req.body.gender 4/*変数はテストなのでとりあえず二つだけです*/ 5 console.log(req.body.name) 6 connection.query( 7 'INSERT INTO users (name, gender) VALUES ("' + name_db + '", ' + '"' + gender_db + '")', 8 (error, results)=>{ 9 res.redirect('/') 10 console.log(error) 11 }) 12})
補足
フォーラムの内容ではなく直接文字列を追加する方法も試してみたのですが、こちらもうまく動きませんでした。
Node.js,SQL
1 2app.post('/new', (req, res) => { 3 connection.query( 4 'INSERT INTO users (name) VALUES ("あ")', 5 (error,results)=>{ 6 console.log(results); 7 res.render('hello-test.ejs'); 8 } 9 ); 10});
補足2
以下にapp.js全文(途中省略)記載しておきます。
app.js
1const express = require('express'); 2const mysql = require('mysql'); 3const app = express(); 4 5app.use(express.urlencoded({extended: false})); 6 7app.use(express.static('public')); 8 9const connection = mysql.createConnection({ 10 host: 'localhost', 11 user: 'root', 12 password: '*********', 13 database: 'forums' 14}); 15 16connection.connect((err) => { 17 if (err) { 18 console.log('error connecting: ' + err.stack); 19 return; 20 } 21 console.log('success'); 22}); 23 24~省略~ 25/*文字列をテーブルへ追加(使うとき以外コメントアウトしています)*/ 26app.post('/new', (req, res) => { 27 connection.query( 28 "INSERT INTO users (name) VALUES ('あ')", 29 (error,results)=>{ 30 console.log(results); 31 res.render('hello-test.ejs'); 32 } 33 ); 34}); 35 36/*フォーラムで得た情報をテーブルへ追加(使うとき以外コメントアウトしています)*/ 37app.post('/new', (req, res)=>{ 38 var name_db = req.body.name 39 var gender_db = req.body.gender 40 console.log(req.body.name) 41 connection.query( 42 'INSERT INTO users (name, gender) VALUES ("' + name_db + '", ' + '"' + gender_db + '")', 43 (error, results)=>{ 44 res.redirect('/') 45 console.log(error) 46 }) 47}) 48 49/*コンソールへテーブルの中身を出力(使うとき以外コメントアウトしています)*/ 50app.get('/new', (req, res) => { 51 connection.query( 52 'SELECT * FROM users', 53 (error, results) => { 54 console.log(results); 55 res.render('hello-test.ejs'); 56 } 57 ); 58}); 59 60app.listen(3000);
ファイル状況
test-forum-----node_module---省略 public-----css-----style.css image views------top.ejs forum.ejs hello-test.ejs app.js package.json package-json.lock
回答2件
あなたの回答
tips
プレビュー