最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文章

  • Mongoose中document與object的區(qū)別示例詳解

    Mongoose中document與object的區(qū)別示例詳解

    這篇文章主要給大家介紹了關(guān)于Mongoose中document與object區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • 使用NVM下載Node.js管理多版本的詳細(xì)教程(附圖文)

    使用NVM下載Node.js管理多版本的詳細(xì)教程(附圖文)

    在開發(fā)過程會一直遇到nodejs的版本問題,直接安裝則只有一個版本,極其不方便,nvm則是用來管理nodejs的工具,可以通過nvm來安裝切換不同版本的nodejs,所以本文給大家介紹了使用NVM下載Node.js管理多版本的詳細(xì)教程,文中有詳細(xì)的圖文教程,需要的朋友可以參考下
    2025-04-04
  • 如何使用 Node.js 實現(xiàn)一個上傳圖片接口

    如何使用 Node.js 實現(xiàn)一個上傳圖片接口

    本文介紹了如何使用Node.js和Express框架創(chuàng)建一個簡單的上傳圖片接口,首先,通過npm初始化項目并安裝必要的依賴,如express和multer,然后,在index.js文件中編寫上傳圖片的邏輯,并通過Postman測試接口,感興趣的朋友跟隨小編一起看看吧
    2025-02-02
  • 使用nodejs搭建一個簡易HTTP服務(wù)的實現(xiàn)示例

    使用nodejs搭建一個簡易HTTP服務(wù)的實現(xiàn)示例

    本文主要介紹了使用nodejs搭建一個簡易HTTP服務(wù)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Node.js 多線程實戰(zhàn)小結(jié)

    Node.js 多線程實戰(zhàn)小結(jié)

    在?Node.js?的世界中,多線程技術(shù)一直是一個受到廣泛關(guān)注的領(lǐng)域,本文主要介紹了Node.js 多線程實戰(zhàn)小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • nodejs實現(xiàn)bigpipe異步加載頁面方案

    nodejs實現(xiàn)bigpipe異步加載頁面方案

    本文給大家分享的是使用nodejs結(jié)合bigpipe實現(xiàn)異步加載頁面的方案,非常的實用,也是以后前端性能優(yōu)化的一個方向,希望大家能夠喜歡。
    2016-01-01
  • node.js中 redis 的安裝和基本操作示例

    node.js中 redis 的安裝和基本操作示例

    這篇文章主要介紹了node.js中 redis 的安裝和基本操作,結(jié)合實例形式分析了node.js中Redis下載、安裝、數(shù)據(jù)類型及基本操作技巧,需要的朋友可以參考下
    2020-02-02
  • Koa代理Http請求的示例代碼

    Koa代理Http請求的示例代碼

    這篇文章主要介紹了Koa代理Http請求的示例代碼,詳解介紹了Koa 代理http請求,解決跨域問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • 詳解node.js平臺下Express的session與cookie模塊包的配置

    詳解node.js平臺下Express的session與cookie模塊包的配置

    本篇文章主要介紹了詳解node.js平臺下Express的session與cookie模塊包的配置,具有一定的參考價值,有興趣的可以了解一下。
    2017-04-04
  • Node.js入門教程:在windows和Linux上安裝配置Node.js圖文教程

    Node.js入門教程:在windows和Linux上安裝配置Node.js圖文教程

    這篇文章主要介紹了Node.js入門教程:在windows和Linux上安裝配置Node.js的方法,本文圖文并茂,步驟明細(xì),是學(xué)習(xí)安裝node.js的絕佳教程,需要的朋友可以參考下
    2014-08-08

最新評論

弥渡县| 九龙坡区| 关岭| 墨脱县| 桓台县| 大足县| 定襄县| 自贡市| 堆龙德庆县| 阜南县| 阳谷县| 九龙坡区| 班玛县| 潢川县| 穆棱市| 高青县| 全南县| 桦南县| 大同市| 太白县| 湄潭县| 洱源县| 上虞市| 景东| 若尔盖县| 镇巴县| 陆良县| 高要市| 海阳市| 白沙| 南漳县| 忻州市| 安陆市| 会理县| 咸阳市| 新建县| 翼城县| 廉江市| 洛隆县| 巴楚县| 甘洛县|