欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nodejs實現(xiàn)用戶登錄路由功能

 更新時間:2019年05月22日 17:02:36   作者:ZXJ~佳  
這篇文章主要介紹了nodejs中實現(xiàn)用戶登錄路由功能,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

經(jīng)過前面幾次的學(xué)習(xí),已經(jīng)可以做下小功能,今天要實現(xiàn)的事用戶登錄路由。

一、users_model.js  功能:定義用戶對象模型

var mongoose=require('mongoose'),
   Schema=mongoose.Schema;
var UserSchema=new Schema({
   username:{type:String,unique:true},
   email:String,
   color:String,
   hashed_password:String
});
mongoose.model('User',UserSchema);

二、users_controller.js  功能:為Express服務(wù)器實現(xiàn)用戶登錄路由

var crypto=require('crypto');
var mongoose=require('mongoose'),User=mongoose.model('User');
function hashPW(pwd){
  return crypto.createHash('sha256').update(pwd).
  digest('base64').toString();
}
//實現(xiàn)用戶登錄路由
exports.login=function (req,res){
  User.findOne({username:req.body.username})
  .exec(function(err,user){
    if(!user){
      err='User Not Found';
    }else if(user.hashed_password===hashPW(req.body.password.toString())){
      req.session.regenerate(function(){
        req.session.user=user.id;
        req.session.username=user.username;
        req.session.msg='Authenticated as ' +user.username;
        res.redirect('/');
      });
    }else{
      err='Authentication failed. ';
    }
    if(err){
      req.session.regenerate(function(){
        req.session.msg=err;
        res.redirect('/login');
      });
    }
  });
};

三、login.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用戶登錄</title>
<link rel="stylesheet"type="text/css" href="/static/css/styles.css" rel="external nofollow" />
</head>
<body>
<div class="form-container">
 <p class="form-header">登錄</p>
 <form method="POST" >
  <label>用戶名:</label>
   <input type="text" name="username"><br>
   <label>密碼:</label>
   <input type="password" name="password"><br>
   <input type="submit" value="登錄">
 </form>
 </div>
 <a href="/signup" rel="external nofollow" >注冊</a>
 <hr> <%=msg %>
</body>
</html>

四、routes.js 功能:為Express服務(wù)器實現(xiàn)處理Web請求路由

var crypto=require('crypto');
var express=require('express');
module.exports=function(app){
  var users=require('./controllers/users_controller');
  app.use('/static',express.static('./static')).
  use('/lib',express.static('../lib')
);
app.get('/login',function(req,res){
  if(req.session.user){
    res.redirect('/');
  }
  res.render('login',{msg:req.session.msg})
});
app.post('/login',users.login);

頁面效果

總結(jié)

以上所述是小編給大家介紹的nodejs中實現(xiàn)用戶登錄路由功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!

相關(guān)文章

  • nodejs簡單實現(xiàn)TCP服務(wù)器端和客戶端的聊天功能示例

    nodejs簡單實現(xiàn)TCP服務(wù)器端和客戶端的聊天功能示例

    這篇文章主要介紹了nodejs簡單實現(xiàn)TCP服務(wù)器端和客戶端的聊天功能,結(jié)合實例形式分析了nodejs基于TCP協(xié)議實現(xiàn)的聊天程序客戶端與服務(wù)器端具體步驟與相關(guān)操作技巧,代碼備有較為詳盡的注釋便于理解,需要的朋友可以參考下
    2018-01-01
  • nodejs使用PassThrough流進(jìn)行數(shù)據(jù)傳遞合并示例詳解

    nodejs使用PassThrough流進(jìn)行數(shù)據(jù)傳遞合并示例詳解

    這篇文章主要為大家介紹了nodejs使用PassThrough流進(jìn)行數(shù)據(jù)傳遞合并示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Express框架實現(xiàn)簡單攔截器功能示例

    Express框架實現(xiàn)簡單攔截器功能示例

    這篇文章主要介紹了Express框架實現(xiàn)簡單攔截器功能,結(jié)合實例形式分析了express框架攔截器相關(guān)功能與使用方法,需要的朋友可以參考下
    2023-05-05
  • 三步教你完成切換nodejs版本

    三步教你完成切換nodejs版本

    nvm是一個node的版本管理工具,可以簡單操作node版本的切換、安裝、查看,下面這篇文章主要給大家介紹了關(guān)于如何通過三步完成切換nodejs版本的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • node.JS二進(jìn)制操作模塊buffer對象使用方法詳解

    node.JS二進(jìn)制操作模塊buffer對象使用方法詳解

    在ES6引入TypedArray之前,JavaScript語言沒有讀取或操作二進(jìn)制數(shù)據(jù)流的機制,本文為大家詳細(xì)介紹nodeJS中二進(jìn)制操作模塊buffer對象使用方法詳解
    2020-02-02
  • 詳解nodejs微信公眾號開發(fā)——3.封裝消息響應(yīng)模塊

    詳解nodejs微信公眾號開發(fā)——3.封裝消息響應(yīng)模塊

    上一篇文章:nodejs微信公眾號開發(fā)(2)自動回復(fù),實現(xiàn)了簡單的關(guān)注回復(fù)。采用拼接字符串的形式,并不是很方便,這里我們將其封裝承接口。
    2017-04-04
  • npm配置淘寶鏡像的教程詳解

    npm配置淘寶鏡像的教程詳解

    npm淘寶鏡像,也稱為npm cnpm或npm.taobao.org,是一個針對npm包管理器的國內(nèi)鏡像服務(wù),通過設(shè)置npm淘寶鏡像,你可以更快地下載和安裝依賴,本文給大家介紹了npm配置淘寶鏡像的教程,需要的朋友可以參考下
    2024-07-07
  • 什么是MEAN?JavaScript編程中的MEAN是什么意思?

    什么是MEAN?JavaScript編程中的MEAN是什么意思?

    這篇文章主要介紹了什么是MEAN?JavaScript編程中的MEAN是什么意思?,跟lampp一樣,MEAN是指現(xiàn)代web應(yīng)用全棧開發(fā)工具一個組合,需要的朋友可以參考下
    2014-12-12
  • 三分鐘教你用Node做一個微信哄女友(基友)神器(面向小白)

    三分鐘教你用Node做一個微信哄女友(基友)神器(面向小白)

    這篇文章主要介紹了三步教你用Node做一個微信哄女友(基友)神器(面向小白),用node和wechaty微信網(wǎng)頁接口開發(fā)的一款小工具,可以定時給女朋友發(fā)每天的天氣情況,天氣提醒,每日一句。通過配置機器人api后還可以實現(xiàn)微信機器人自動陪女朋友聊天。,需要的朋友可以參考下
    2019-06-06
  • 淺談JS前端模塊化的幾種規(guī)范

    淺談JS前端模塊化的幾種規(guī)范

    這篇文章主要介紹了JS前端模塊化的幾種規(guī)范,對前端模塊化感興趣的同學(xué),可以參考下
    2021-05-05

最新評論