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>
数据库截图如下:
node控制台如下:
可以从下面几点进行排查:
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呢,相当简单而且强大