0
當我提交表單數據時,數據添加到mysql數據庫中並且值顯示爲未定義。
任何人都可以告訴我最新的問題,我很新的NodeJs發展。從NodeJS提交的數據在Mysql數據庫中未定義
HTML文檔
<html>
<form method="post" action="/add">
Name : <input name="mname" type ="text" > <p>
Age : <input name="mage" type ="text" > <p>
Department : <input name="mdepartment" type="text" > <p>
City : <input name="mcity" type = "text"> <p>
<input type="submit" value ="submit">
<input type="reset" value="reset">
</form>
</center>
和我的JavaScript文件如下
myapp.js
var express = require('express');
var path = require('path');
var mysql = require('mysql');
var app = express();
var bodyparser = require('body-parser');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '1234'
});
connection.query('USE samplenodejs');
app.set('port',3000);
app.use(bodyparser.urlencoded({extended : false}));
app.get('/', function(req, res) {
console.log('GET /');
res.sendFile(__dirname + '/AddDetails.html');
});
app.post('/add',function(req,res){
connection.query("INSERT INTO test VALUES('','"+req.body.mname+"','"+req.body.mage+"','"+req.body.mcity+"','"+req.body.mdepartment+"')",function(err,res){
if(err) throw err;
});
res.redirect('/');
});
app.listen(app.get('port'));
console.log('Express server listening on port '+app.get('port'));
**從來沒有**(盲目地)連接SQL查詢字符串中的用戶輸入,否則你打開自己的SQL注入攻擊。始終使用準備的語句。 – mscdex
您需要將'res.redirect('/')'放在查詢回調中,否則,在查詢完成之前,它將在查詢重定向之前重定向。對於未定義的問題,您可以在查詢之前檢查表單字段的值。然後,您可以檢查生成的整個SQL語句,並直接在mysql提示符或phpmyadmin中查看它是否有效。 –