首页 > 解决方案 > 为什么我无法成功将我的表单连接到 mysql 数据库

问题描述

我试图将我的 html 表单连接到我的 mysql 服务器,加载了我的网页,这意味着我成功连接到了 mysql 服务器,但是在填写表单时出现错误:


    Cannot POST /

这是主页上的html表单代码:


    <div id="subform">
         <form action="/" method="POST">
             <div class="ol"><div class="nam" >Name</div><div id="rsik">*</div></div>
                    <div class="sd ssd"><input type="text" name="fname" placeholder="First" id="fn">
                    <input type="text" name="lname" placeholder="Last" id="ln" ></div>
                    <div class="ol"><div class="nam" >E-mail</div><div id="rsik">*</div></div>
                    <div class="sd"></span><input type="email" name="email" placeholder="john@example.com" id="email"></div></br>
                    <button type="submit">Subscribe</button>
                </form>
            </div>

这是我的 app.js 文件:


    const express = require('express')
    const path = require('path')
    const app = express()
    var mysql = require('mysql');
    var bodyParser = require('body-parser')
    const port = 3000
    
    var urlencodedParser = bodyParser.urlencoded({ extended: false })
    
    //Static Files
    app.use(express.static(path.resolve(__dirname, 'public')))
    
    
    //Set views
    app.set('view engine', 'ejs')
    
    app.set('views', './views')
    
    app.get('/', (req, res) => {
      res.render('Home')
    })
    
    app.get('/About', (req, res) => {
      res.render('About')
    })
    
    app.get('/Projects', (req, res) => {
      res.render('Projects')
    })
    
    app.get('/RAQ', (req, res) => {
      res.render('RAQ')
    })
    
    app.get('/', (req, res) => {
      res.render('home', {qs: req.query});
    })
    
    app.post('/', urlencodedParser, (req, res) => {
      res.render('home', {qs: req.query});
    })
    var connection = mysql.createConnection({
      host     : 'https://www.blackanthemltd.site',
      user     : 'root',
      password : 'Mynameisabayomi1.',
      database : 'bal'
    });
     
    connection.connect(function(err){
      if (err) throw err;
      console.log('connected..')
    });
    app.post('/', function(req,res){
      console.log(req.body);
    
      var sql ="insert into users values('"+req.body.fn+"','"+req.body.ln+"',"+req.body.email+")"
      connection.query(sql, function (error, results) {
        if (error) throw error;
        console.log('The solution is: ', results[0].solution);
      });
    
      res.render('Home', { title: 'Data Saved',
      message: 'Data Saved successfully.'})
    
      connection.end();
    })
    app.listen(port, () => {
          console.log(`Example app listening at http://localhost:${port}`)
    })

请问我做错了什么?我已经尝试了很多关于如何连接该数据库的选项,但无济于事,没有任何帖子或在线文章能够帮助我解决问题。

标签: javascriptnode.jsexpressbackendmysql-connector

解决方案


推荐阅读