nodejs中实现用户注册路由功能

 更新时间:2019年05月20日 09:23:18   作者:ZXJ~佳  
这篇文章主要介绍了nodejs中实现用户注册路由功能的实例代码,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

 经过前面几次的学习,已经可以做下小功能,今天要实现的是用户注册路由。

一、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服务器实现用户注册的路由

var crypto=require('crypto');
var mongoose=require('mongoose'),User=mongoose.model('User');
function hashPW(pwd){
  return crypto.createHash('sha256').update(pwd).
  digest('base64').toString();
}
//实现用户注册路由
exports.signup=function(req,res){
var user=new User({username:req.body.username});
user.set('hashed_password',hashPW(req.body.password));
user.set('email',req.body.email);
user.save(function(err){
  if(err){
    res.session.error=err;
    res.redirect('/signup');
  }else{
    req.session.user=user.id;
    req.session.username=user.username;
    req.session.msg='Authenticated as '+user.username;
    res.redirect('/');
  }
});
};

三、signup.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>
   <label>Email:</label>
   <input type="email" name="email"><br>
   <input type="submit" value="注册">
 </form>
 </div>
 <hr> <%=msg %>
</body>
</html>

四、routes.js 功能:为Express服务器实现处理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('/signup',function(req,res){
  if(req.session.user){
    res.redirect('/');
  }
  res.render('signup',{msg:req.session.msg})
});
app.post('/signup',users.signup);

页面效果

数据库显示

总结

以上所述是小编给大家介绍的nodejs中实现用户注册路由功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • Node.js中处理特殊字符的文件名解决方案

    Node.js中处理特殊字符的文件名解决方案

    在Node.js中,通过path模块提供的basename方法,我们可以轻松地从文件路径中提取文件名,在这篇文章中,我们将介绍一种安全稳妥的方法,结合使用dirname和长度计算,以处理特殊字符的文件名,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • 从零开始学习Node.js系列教程二:文本提交与显示方法

    从零开始学习Node.js系列教程二:文本提交与显示方法

    这篇文章主要介绍了Node.js文本提交与显示方法,结合实例形式分析了nodejs基于http的文本提交、传输与显示相关操作技巧,需要的朋友可以参考下
    2017-04-04
  • 深入nodejs中流(stream)的理解

    深入nodejs中流(stream)的理解

    本篇文章主要介绍了深入nodejs中流(stream)的理解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Nodejs学习笔记之入门篇

    Nodejs学习笔记之入门篇

    本系列教程致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识。绝不是一篇“Hello World”的教程。
    2015-04-04
  • nodejs爬虫遇到的乱码问题汇总

    nodejs爬虫遇到的乱码问题汇总

    这篇文章主要给大家汇总介绍了作者再制作nodejs爬虫遇到的乱码问题,有相同问题的小伙伴可以参考下
    2017-04-04
  • package.json文件配置详解

    package.json文件配置详解

    这篇文章主要介绍了package.json文件配置详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-06-06
  • Node.js 中使用 async 函数的方法

    Node.js 中使用 async 函数的方法

    async是一个流程控制工具包,提供了直接而强大的异步功能。基于Javascript为Node.js设计,同时也可以直接在浏览器中使用。
    2017-11-11
  • 充分发挥Node.js程序性能的一些方法介绍

    充分发挥Node.js程序性能的一些方法介绍

    这篇文章主要介绍了充分发挥Node.js程序性能的一些方法介绍,Node.js是把JavaScript用于服务器端的框架,需要的朋友可以参考下
    2015-06-06
  • npm 语义版本控制详解

    npm 语义版本控制详解

    这篇文章主要介绍了npm 语义版本控制详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • node上的redis调用优化示例详解

    node上的redis调用优化示例详解

    这篇文章主要给大家介绍了关于node上redis调用优化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-10-10

最新评论