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 相关文章推荐
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
Aug 21 NodeJs
nodejs 中模拟实现 emmiter 自定义事件
Feb 22 NodeJs
nodejs微信公众号支付开发
Sep 19 NodeJs
nodejs和php实现图片访问实时处理
Jan 05 NodeJs
用nodejs搭建websocket服务器
Jan 23 NodeJs
nodejs基础知识
Feb 03 NodeJs
详解Nodejs之静态资源处理
Jun 05 NodeJs
NodeJs通过async/await处理异步的方法
Oct 09 NodeJs
详解Nodejs 通过 fs.createWriteStream 保存文件
Oct 10 NodeJs
Nodejs调用Dll模块的方法
Sep 17 NodeJs
独立部署小程序基于nodejs的服务器过程详解
Jun 24 NodeJs
nodejs对项目下所有空文件夹创建gitkeep的方法
Aug 02 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错误信息方法的详解
2013/06/09 PHP
学习php设计模式 php实现单例模式(singleton)
2015/12/07 PHP
jQuery插件pagination实现分页特效
2015/04/12 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
详解Vue-axios 设置请求头问题
2018/12/06 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
Python实现端口复用实例代码
2014/07/03 Python
Python计算已经过去多少个周末的方法
2015/07/25 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
《Python学习手册》学习总结
2018/01/17 Python
python生成圆形图片的方法
2020/03/25 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
Python标准库itertools的使用方法
2020/01/17 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
浅谈Python中re.match()和re.search()的使用及区别
2020/04/14 Python
python定义类的简单用法
2020/07/24 Python
在Python中字典按值排序的实现方法
2020/11/12 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
儿科主治医生个人求职信
2013/09/23 职场文书
幼儿园校车司机的岗位职责
2014/01/30 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
python字典的元素访问实例详解
2021/07/21 Python
python数字类型和占位符详情
2022/03/13 Python
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python