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...')

前端代码如下:

html>
<html>
    <head>
        <meta charset="utf-8">
        <title>node_testtitle>
    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

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

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 } ]证明连接成功
})

何不试试sequlize呢,相当简单而且强大