

Nodeを使ってformタグで入力したデータをMysqlのデータベースに追加したいのですが、なんどやっても入力した文字が追加されず画面に表示されません。良ければお力添えを頂きたいです。

OS：Windouws10  
node: version 1.0.0  
mysql: version 2.18.1  
ejs: version 2.18.i

**server.js**

[code]

    let express = require("express")
    const mysql = require('mysql')
    
    let http = require('http')
    let app = express()
    let server = http.createServer(app)
    
    app.use(express.static('public'))
    app.use(express.urlencoded({extended : true}))
    
    
    const connection = mysql.createConnection({  //データベースに接続
        host: 'localhost',
        user: 'root',
        password : '', 
        database : 'mydb'
    });
    
    app.get('/', (req, res)=>{
        connection.query('SELECT * FROM zatu', (error, results)=>{
            console.log(results)
               res.render('top.ejs', {zatu: results})
        })
    
    })
    
    app.get('/new', (req, res)=>{
        res.render('new.ejs')
    })
    
    app.post('/create', (req, res)=>{　　// 今回問題の場所
        console.log(req.body.zatuName, req.body.zatuContent)
    
        connection.query('INSERT INTO zatu (title) VALUES　(?)', [req.body.zatuName], 　//　ここの処理が機能していない
        (error, results)=>{
            connection.query('SELECT * FROM zatu', (error, results)=>{
                res.render('top.ejs', {zatu: results})
            })
        })
    })
    
    app.listen(process.env.PORT, ()=>{
        console.log("HelloWorld")
    })
    
[/code]

**top.ejs**

[code]

    <div class="item-form-wrapper">
          <form action="/create" method="POST">
            <input class="input" type="text" name="zatuName" placeholder="雑学のタイトル">　<!-- name属性を指定している -->
            <textarea class="textarea" placeholder="ちょっとした説明"　name="zatutitle"></textarea>　<!-- なぜかtextarea内だとnameを受け取れない -->
            <input type="submit" class="button is-success is-rounded" value="投稿する">
          </form>
    　　</div>
    
[/code]


CC BY-SA 4.0
2020-03-30T07:30:57.273
65232
2022-10-17T10:04:40.513
2020-03-30T08:24:37.870
32986
39431
question
mysql node.js
INSERT INTOでフォームから受け取った値を追加できない。


formで受け取ったreq.body~を別の変数に代入して、queryのVALUESを上記のように書き換えたらINSERTで追加することができました。

[code]

    app.post('/create', (req, res)=>{
        var title_db = req.body.zatuTitle
        var content_db = req.body.zatuarea
        connection.query('INSERT INTO zatu (title, content) VALUES ("' + title_db + '", ' + '"' + content_db + '")', 
            (error, results)=>{
                res.redirect('/')
                console.log(error)
        })
    })
    
[/code]


CC BY-SA 4.0
2020-04-02T01:48:05.193
65292
2020-04-02T02:01:48.747
2020-04-02T02:01:48.747
3060
39431
65232
answer