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教程 安装express及配置app.js文件的详细步骤
May 11 NodeJs
用nodejs实现PHP的print_r函数代码
Mar 14 NodeJs
nodejs教程之异步I/O
Nov 21 NodeJs
Nodejs如何搭建Web服务器
Mar 28 NodeJs
在windows上用nodejs搭建静态文件服务器的简单方法
Aug 11 NodeJs
深入理解nodejs中Express的中间件
May 19 NodeJs
nodejs利用ajax实现网页无刷新上传图片实例代码
Jun 06 NodeJs
nodejs实现截取上传视频中一帧作为预览图片
Dec 10 NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 NodeJs
详解Nodejs get获取远程服务器接口数据
Mar 26 NodeJs
Nodejs环境实现socket通信过程解析
Jul 03 NodeJs
分享五个Node.js开发的优秀实践 
Apr 07 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版)
2006/10/09 PHP
模板引擎smarty工作原理以及使用示例
2014/05/25 PHP
Django 中 cookie的使用
2017/08/17 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
js去除重复字符串两种实现方法
2013/01/09 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
Javascript基础教程之比较操作符
2015/01/18 Javascript
nodejs开发微博实例
2015/03/25 NodeJs
jQuery简单实现日历的方法
2015/05/04 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
编写React组件项目实践分析
2018/03/04 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
基于javascript实现贪吃蛇小游戏
2019/11/25 Javascript
Python中AND、OR的一个使用小技巧
2015/02/18 Python
用python处理图片实现图像中的像素访问
2018/05/04 Python
Python多进程原理与用法分析
2018/08/21 Python
PYQT5设置textEdit自动滚屏的方法
2019/06/14 Python
Python tkinter常用操作代码实例
2020/01/03 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
Python-split()函数实例用法讲解
2020/12/18 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
巴西男士胡须和头发护理产品商店:Beard
2017/11/13 全球购物
请解释接口的显式实现有什么意义
2012/05/26 面试题
计算机网络毕业生自荐信
2013/10/01 职场文书
班主任工作年限证明
2014/01/12 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
Nginx如何配置根据路径转发详解
2022/07/23 Servers