mac_05185 2022-11-26 21:20 采纳率: 67.1%
浏览 20
已结题

node连接MySQL后,前端表单查询搜不到数据库内容,如何解决?

node连接后端MySQL,前端利用HTML写了一个最简单的form表单做测试,输入账号密码之后node终端查询空,具体代码如下:

const http = require('http');
const querystring = require('querystring');
const mysql = require('mysql')
const server = http.createServer((req, res) => {
    let postVal = "";
    req.on("data", (chunk) => {
        postVal += chunk;
    })
    req.on("end", () => {
        let formVal = querystring.parse(postVal);
        let userName = formVal.userName;
        let userPwd = formVal.userPwd;

        const connection = mysql.createConnection({
            host: "localhost",
            user: "root",
            password: "123456",
            port: 3306,
            database: "demo1"
        })
        // 连接
        connection.connect();
        // 查询
        connection.query('select * from user where userName=? and userPwd=?', [userName, userPwd], (err,
            result, fields) => {
            if (err) throw err;
            if (result.length > 0) {
                res.writeHead(200, {'Content-type':'text/html;charset=utf8'})
                res.write(result);
            }
            res.end();
        })
        connection.end();
    })
})
server.listen(8080)
console.log('server is running...')

前端代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>node_test</title>
    </head>
    <body>
        <form method="post" action="http://localhost:8080">
            <input type="text" name="userUser"/>
            <input type="password" name="userPwd"/>
            <input type="submit" name="登录"/>
        </form>
    </body>
</html>

数据库截图如下:

img

node控制台如下:

img

  • 写回答

2条回答 默认 最新

  • 小码农叔叔 Java领域优质创作者 2022-11-26 21:44
    关注

    可以从下面几点进行排查:

    1、检查下本地的 localhost是否和127.0.0.1在host文件中做了映射,可以尝试使用本机的IP;

    2、使用下面的方式检查下连接是否正常:

    const db = mysql.createPool({
        host:"",//如果是操作本地数据库,填写127.0.0.1;如果是远程服务器上的数据库填服务公网ip
        user:"用户名",//通常为root
        password:"",//密码
        database:""//你所要操作的数据库的名称(是你在mysql中建立的数据库)
    })
    
    
    db.query('select 1', (err, results) => {
      // mysql 模块工作期间报错了
      if (err) return console.log(err.message);
      // 能够成功的执行 SQL 语句
      console.log(results); //结果为:[ RowDataPacket { '1': 1 } ]证明连接成功
    })
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月5日
  • 已采纳回答 1月28日
  • 创建了问题 11月26日

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建