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'); }) });