nodejs页面没有停止重新加载

我创build了这个代码插入数据到数据库使用nodejs和mysql,这是工作和数据插入,但问题的网页仍然重新加载,并永远不会停止后,我点击提交button并发送相同的值超过一次的数据库

server.js

var express = require('express'); var app = express(); var server = require('http').createServer(app); bodyParser = require('body-parser'); var mysql = require('mysql'); var connection = mysql.createConnection({ host: 'localhost', database: 'chmult', user: 'root', password: '', }); users = []; connections = []; app.get('/', function(req, res){ res.sendFile(__dirname + '/'); }); app.use(bodyParser.urlencoded({ extended: true })); /**bodyParser.json(options) * Parses the text as JSON and exposes the resulting object on req.body. */ app.use(bodyParser.json()); connection.connect(); app.post("/", function (req, res) { console.log(req.body.user.username) connection.query("Insert into tesko (username) VALUES ('"+req.body.user.username+"')") }); app.listen(3231); console.log('Example app listening at port:3000'); 

html代码

 <html> <form method="post" action=""> <input type="text" name="user[username]"> <input type="submit" value="Submit"> </form> </html> 

你已经错过了connection.query的callback,你不用做任何事情

尝试这个

 app.post("/", function (req, res) { console.log(req.body.user.username) connection.query("INSERT INTO tesko (username) VALUES ('"+req.body.user.username+"')", function(err){ return res.send('Done'); }) }); 

看这里:

https://www.w3schools.com/nodejs/nodejs_mysql_insert.asp

正如在问题的评论中指出的那样,SQL注入已经成熟了,您应该使用参数:

 app.post("/", function (req, res) { console.log(req.body.user.username) connection.query("INSERT INTO tesko SET ? ", {username: req.body.username}, function(err){ return res.send('Done'); }) });