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

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

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

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

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

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ù)器實(shí)現(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();
}
//實(shí)現(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" >注冊(cè)</a>
 <hr> <%=msg %>
</body>
</html>

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

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);

頁(yè)面效果

總結(jié)

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Koa代理Http請(qǐng)求的示例代碼

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

    詳解node.js平臺(tái)下Express的session與cookie模塊包的配置

    本篇文章主要介紹了詳解node.js平臺(tái)下Express的session與cookie模塊包的配置,具有一定的參考價(jià)值,有興趣的可以了解一下。
    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

最新評(píng)論

河南省| 集安市| 贺兰县| 黄梅县| 剑川县| 油尖旺区| 青冈县| 大竹县| 微山县| 泰顺县| 巴彦淖尔市| 米易县| 错那县| 江山市| 陆良县| 阿克陶县| 颍上县| 郧西县| 潼南县| 平凉市| 枞阳县| 兴山县| 开封市| 吉首市| 日照市| 云南省| 和政县| 南宁市| 沾益县| 西华县| 信阳市| 宜春市| 宁化县| 辽阳市| 新源县| 仁化县| 威远县| 建瓯市| 辽阳县| 湘潭县| 石台县|