我创建了名为“USERS”的数据库,并在数据库中创建了“USERS”表,它看起来像是
现在我运行'localhost:8000'。我得到了我的login.html以及控制台中的“连接”消息。现在我想知道在login.html中输入用户名密码后,我想验证“验证”按钮上的用户名密码。我怎样才能做到这一点?????请帮助我。
Server.js:
var http=require('http');
var express=require('express');
var fs=require('fs');
var mysql=require('mysql');
var app=express();
var server=http.createServer(app);
server.listen(8000);
var connection=mysql.createConnection({
host:'localhost',
user:'root',
password:'root'
});
connection.connect(function(err) {
if(!err)
{
console.log('connected');
}
});
app.get('/', function(request,response){
fs.readFile('login.html', function(Error,Res){
if(!Error)
{
response.writeHead(200,{'content-type':'text/html'});
response.write(Res);
}
});
});
的login.html:
<html>
<head>
<title>Angular Js</title>
<script src="assets/js/Angular.min.js"></script>
<style>
</style>
<body>
<input id="username" />
<input id="password" />
<button id="submit">Verify</button>
</body>
</html>
答案 0 :(得分:0)
您需要对代码进行一些更改..
作为第一步,您需要为Express框架添加一些中间件来处理发布数据 - 例如:
var app=express();
var bodyParser = require('body-parser')
app.use( bodyParser.urlencoded() );
从html页面开始,您的输入字段需要包装在表单中 - 否则当您单击“提交”时,它们将不会/不能发布到任何内容。
<body>
<form id="someform" action="/login" method="post">
<input id="username" />
<input id="password" />
<button id="submit">Verify</button>
</form>
</body>
然后,在server.js中添加一个新方法来处理对/ login url的发布请求,然后您可以在其中读取提交的值&amp;做适合他们的事。
app.post('/login', function(sReq, sRes) {
var username = sReq.body.username;
var password = sReq.body.password;
if (username=='myusername' && password == 'mypassword') {
// do something here with a valid login
} else {
// user or password doesn't match
}
});
请查看How to retrieve POST query parameters?以获取更多提示。
此示例不会将提交的值与数据库进行比较或加密密码,但可能有助于您开始提交帖子数据并在Node中访问它。
对于你计划在生产环境中使用的东西,你也不应该做的事情 - 密码应该被加密,你需要处理会话状态的许多其他东西。
到目前为止,最好的选择是找到并使用一些预先构建的身份验证中间件 - 并根据您的需要对其进行配置。