2016-06-28 69 views
0

我已经使用一些HTML/CSS创建了一个登录页面,并且我希望用户输入一个预先确定的密码(如果密码是正确的,他们可以进入该网站,如果没有,他们不能。我查了很多教程/网站等,但他们要么使用Mongodb创建独特的密码,要么使用Passport,这不是我正在寻找的。我意识到有一个预先确定的密码不是最佳实践,但它适合我正在做的事情的范围。我打算一旦完成基本设置就改变它。如何在非常基本的node.js/html登录页面上提交用户提交的提交请求

有一个全功能的网站,当用户登录时,我只是有Node.js的经验非常少,并没有真正知道如何处理POST请求

这是我的我的HTML页面的组成部分(login.ejs)

<form method="post"> 
 
    <div class="form-group"> 
 
    <label>Password</label> 
 
    <input type="text" class="form-control" name="name" id="name"> 
 
    </div> 
 
    
 
<button type="submit" class="btn btn-warning btn-lg">Login</button> 
 
</form>

这是我的我的server.js文件的一部分

var express = require('express'); 
 
var config = require('./config'); 
 
var bodyParser = require('body-parser'); 
 
var mandrill = require('mandrill-api/mandrill'); 
 
var app = express(); 
 
app.set('view engine', 'ejs'); 
 
app.use(express.static('dist')); 
 
app.use(bodyParser.urlencoded({ extended: false })); 
 

 
//other stuff 
 
app.post('/login', function (req, res) { 
 
//user enters predetermined password 
 
//user hits the submit button 
 
//if password = "login" 
 
//go to home page 
 
//if password != "login" 
 
//go to error page 
 

 
});

回答

0

修改客户端代码

<form method="post" action="/login"> 
    <div class="form-group"> 
     <label>Password</label> 
     <input type="text" class="form-control" name="name" id="name"> 
    </div> 

    <button type="submit" class="btn btn-warning btn-lg">Login</button> 
</form> 

和修改服务器端代码:

app.post('/login', function (req, res) { 

if (req.body.name == "login") 
    res.redirect('/home'); 
if (req.body.name != "login") 
    res.redirect('/error'); 
}); 

app.get('/home', function(req, res) { 
    // If you are using ejs, you can render ejs 
    res.sendFile(__dirname + 'path_to_folder_containing_htmls/home.html'); 
}); 

app.get('/error', function(req, res) { 
    // If you are using ejs, you can render ejs 
    res.sendFile(__dirname + 'path_to_folder_containing_htmls/error.html'); 
}); 
+0

太好了,谢谢你的时间 –

0

首先,你需要特定的formaction属性是您要发送到的节点路由。你form会简单地更改为:

<form method="post" action="/login"> 
    <div class="form-group"> 
     <label>Password</label> 
     <input type="text" class="form-control" name="name" id="name"> 
    </div> 

    <button type="submit" class="btn btn-warning btn-lg">Login</button> 
</form> 

在你node文件,因为你正在使用body-parser它是非常简单的访问POST请求的主体。

app.post('/login', (req, res) => { 

    var data = req.body.name; 

}); 

name是在input标签name属性在你form价值。

+0

谢谢百万 –