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的10个性能优化技巧
Jul 15 NodeJs
轻松创建nodejs服务器(3):代码模块化
Dec 18 NodeJs
Nodejs学习笔记之测试驱动
Apr 16 NodeJs
nodejs导出excel的方法
Jun 30 NodeJs
图片上传之FileAPI与NodeJs
Jan 24 NodeJs
详解nodejs微信公众号开发——3.封装消息响应模块
Apr 10 NodeJs
NodeJs实现定时任务的示例代码
Dec 05 NodeJs
使用nodejs+express实现简单的文件上传功能
Dec 27 NodeJs
nodejs+mongodb+vue前后台配置ueditor的示例代码
Jan 02 NodeJs
NodeJs入门教程之定时器和队列
Mar 08 NodeJs
nodejs 递归拷贝、读取目录下所有文件和目录
Jul 18 NodeJs
Nodejs 微信小程序消息推送的实现
Jan 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的类树(支持无限分类)
2006/10/09 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
一个挺有意思的Javascript小问题说明
2011/09/26 Javascript
浅谈Javascript如何实现匀速运动
2014/12/19 Javascript
js对象基础实例分析
2015/01/13 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
10道典型的JavaScript面试题
2017/03/22 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
Python实现屏幕截图的代码及函数详解
2016/10/01 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
python实现屏保计时器的示例代码
2018/08/08 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
对python中dict和json的区别详解
2018/12/18 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
关于旷工的检讨书
2014/02/02 职场文书
毕业生自荐信格式
2014/03/07 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
国庆宣传标语
2014/06/30 职场文书
光学与应用专业毕业生求职信
2014/09/01 职场文书
项目合作协议书
2014/09/23 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
七年级作文之英语老师
2019/10/28 职场文书