当我输入我的登录名和密码时,应用程序冻结并且浏览器正在加载。我在ejs文件中输入我的登录名和密码。 有人能告诉我为什么sql后的代码不能正常工作吗? 我的js代码:
var express = require('express');
var ejs = require('ejs');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var connect = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "artbook"
});
var app = express();
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({
extended: true
}));
app.get('/', function(req, res){
res.render('./index');
});
app.post('/', function(req, res){
console.log(req.body.login + req.body.password);
connect.connect(function(err){
connect.on('error', function(err) {
console.log("mysql error",err);
});
var sql = 'SELECT imie FROM konta WHERE imie = "'+req.body.login+'" AND nazwisko = "'+req.body.password+'";'
connect.query(sql, function (rows, err){
connect.on('error', function(err) {
console.log("query error",err);
});
for(var i in rows) {
if(req.body.login === rows[i].imie && req.body.password === rows[i].nazwisko){
console.log('done');
res.render('./login')
}
}
});
});
});
app.listen(3000);
console.log('Port serwera: 3000');
答案 0 :(得分:0)
connect.query()中的回调函数参数为错误顺序。第一个参数是错误,第二个参数是结果,第三个(可选)是字段。 应该是 -
connect.query(sql, function(error, rows){
if (error) throw error; // do your thing with error
//results
console.log(rows);
})
按照文档here
进行操作此外,从您的API中,如果出现错误并在客户端(浏览器)处理错误响应,则必须发送错误响应。
答案 1 :(得分:0)
var express = require('express');
var ejs = require('ejs');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var connect = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "artbook"
});
var app = express();
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({
extended: true
}));
app.get('/', function(req, res){
res.render('./index');
});
app.post('/', function(req, res){
console.log(req.body.login + req.body.password);
connect.connect(function(err){
connect.on('error', function(err) {
console.log("mysql error",err);
});
var sql = 'SELECT imie FROM konta WHERE imie = "'+req.body.login+'" AND nazwisko = "'+req.body.password+'";'
connect.query(sql, function (err, rows){
connect.on('error', function(err) {
console.log("query error",err);
});
for(var i in rows) {
if(req.body.login === rows[i].imie && req.body.password === rows[i].nazwisko){
console.log('done');
res.render('./login')
}
console.log(rows[i].imie + rows[i].nazwisko);
}
});
});
});
app.listen(3000);
console.log('Port serwera: 3000');`enter code here`