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


Posted in NodeJs onMay 20, 2019

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

一、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中实现用户注册路由功能

数据库显示

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

总结

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

NodeJs 相关文章推荐
nodejs实用示例 缩址还原
Dec 28 NodeJs
NodeJS 模块开发及发布详解分享
Mar 07 NodeJs
nodejs读取memcache示例分享
Jan 02 NodeJs
搭建简单的nodejs http服务器详解
Mar 09 NodeJs
Nodejs基于LRU算法实现的缓存处理操作示例
Mar 17 NodeJs
nodejs中使用HTTP分块响应和定时器示例代码
Mar 19 NodeJs
nodejs 图片预览和上传的示例代码
Sep 30 NodeJs
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
Oct 17 NodeJs
手把手教你如何使用nodejs编写cli命令行
Nov 05 NodeJs
Nodejs中获取当前函数被调用的行数及文件名详解
Dec 12 NodeJs
nodejs微信开发之接入指南
Mar 17 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 NodeJs
nodejs实现日志读取、日志查找及日志刷新的方法分析
May 20 #NodeJs
NodeJS读取分析Nginx错误日志的方法
May 14 #NodeJs
nodejs搭建本地服务器并访问文件操作示例
May 11 #NodeJs
M2实现Nodejs项目自动部署的方法步骤
May 05 #NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 #NodeJs
nodejs中request库使用HTTPS代理的方法
Apr 30 #NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 #NodeJs
You might like
多php服务器实现多session并发运行
2006/10/09 PHP
深入PHP magic quotes的详解
2013/06/17 PHP
destoon各类调用汇总
2014/06/20 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
Python多线程实现同步的四种方式
2017/05/02 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
代码讲解Python对Windows服务进行监控
2018/02/11 Python
python3 读写文件换行符的方法
2018/04/09 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
python元组的概念知识点
2019/11/19 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
python列表切片和嵌套列表取值操作详解
2020/02/27 Python
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
Aerosoles爱柔仕官网:美国舒软女鞋品牌
2017/07/17 全球购物
北大青鸟学生求职信
2013/09/24 职场文书
生产部经理岗位职责
2013/12/16 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
python使用shell脚本创建kafka连接器
2022/04/29 Python
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server