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 notepad++ 自动补全提示,如输入汉字"人名",就会出现"张三","李四"
  • ¥15 如何用matlab实现PSO算法与两种智能优化算法在30维和50维问题上的性能比较?
  • ¥15 在qt的QGraphicsView和QGraphicsScene中遇到的问题
  • ¥50 如何完美解决谷歌礼品卡支付不被检测
  • ¥15 nslt的可用模型,或者其他可以进行推理的现有模型
  • ¥15 arduino上连sim900a实现连接mqtt服务器
  • ¥15 vncviewer7.0安装后如何正确注册License许可证,激活使用
  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并2
  • ¥66 关于人体营养与饮食规划的线性规划模型
  • ¥15 基于深度学习的快递面单识别系统