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

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 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错