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进程管理模块forever详解
Jun 01 NodeJs
nodejs命令行参数处理模块commander使用实例
Sep 17 NodeJs
轻松创建nodejs服务器(10):处理POST请求
Dec 18 NodeJs
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
nodejs通过phantomjs实现下载网页
May 04 NodeJs
Nodejs获取网络数据并生成Excel表格
Mar 31 NodeJs
nodejs学习笔记之路由
Mar 27 NodeJs
Nodejs中使用captchapng模块生成图片验证码
May 18 NodeJs
nodejs更改项目端口号的方法
May 13 NodeJs
nodejs express配置自签名https服务器的方法
May 22 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 NodeJs
Nodejs + sequelize 实现增删改查操作
Nov 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+jQuery实现自动补全功能源码
2013/05/15 PHP
php中cookie的使用方法
2014/03/29 PHP
php操作MongoDB类实例
2015/06/17 PHP
php版微信自定义回复功能示例
2016/12/05 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
利用Ionic2 + angular4实现一个地区选择组件
2017/07/27 Javascript
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
2019/11/27 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
vue keep-alive的简单总结
2021/01/25 Vue.js
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
python如何实现递归转非递归
2021/02/25 Python
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
采购员岗位职责
2013/11/15 职场文书
《只有一个地球》教学反思
2014/02/14 职场文书
大学生军训感想
2014/02/16 职场文书
电气自动化专业职业规划范文
2014/02/16 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis