感谢大家几天前解决了这个问题。但是,我已编辑删除了问题(代码)中的某些特定信息。因此它不是重复的,只是为了保护而进行了修订。 我在后端使用nodejs,在前端使用html,并使用数据库(mysql)构建网页。我需要一个登录页面。我的html和nodejs代码如下。直到validate()函数没有错。我的html页面应该使用它,但是没有使用它。 html方面没有任何变化。我的错误在哪里?
NODEJS代码:
var mysql = require('mysql');
var express = require('express');
var http = require('http');
var login = express();
//mysql bağlantısı
var db = mysql.createConnection({
.................});
//connection
db.connect((err) => {
if(err){
throw err;}
else console.log("connected");
});
//veritabanından bilgi çekimi
login.get('/', (req,res) => {
let sql = 'SELECT `user_name`, `pass` FROM `users`';
db.query(sql,(err,result) => {
if(err) throw err;
console.log(result);
res.sendFile(__dirname + "/login.html");
var .... = result[0].......; //set user name
console.log(.);...
var ......= result[0]......; //set user pass
console.log(.....);
});
});
function validate(){
var username = document.getElementById("....").value;
var password = document.getElementById("....").value;
var err=document.getElementById("error").innerHTML;
//giriş alanları boş kalırsa
if(username==""){
alert("Bu gerekli bir alandır");}
if(password==""){
alert("Bu gerekli bir alandır");}
//username şifre eşleşmesi
if ( ....== "....." && .....== "...."){
document.getElementById("error").innerHTML="Log in sucessfull";
window.location = "login.html";
return false;
}
}
HTML代码
form id="form_id" action= "/" method="post" name="myform"
input type="text" id="...." placeholder="......" required
input type="....." id="....." placeholder="Password" required
input type="button" id="submit" value="LOGIN" onclick="validate()"
script src="path"
答案 0 :(得分:0)
您正在进行前端验证,因此您的验证功能必须位于script标记的前端。当用户单击提交按钮时,调用验证功能。
另一种方法是通过快速中间件在后端进行验证。多数民众赞成在后端验证。检查express-validator