2016-06-28 66 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

謝謝百萬 –