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 提示‘xxx’ 不是内部或外部命令解决方法
Nov 20 NodeJs
nodejs教程之制作一个简单的文章发布系统
Nov 21 NodeJs
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
Dec 18 NodeJs
使用NodeJs 开发微信公众号(三)微信事件交互实例
Mar 02 NodeJs
详解nodeJS之二进制buffer对象
Jun 03 NodeJs
NodeJS实现图片上传代码(Express)
Jun 30 NodeJs
nodejs用gulp管理前端文件方法
Jun 24 NodeJs
CentOS7中源码编译安装NodeJS的完整步骤
Oct 13 NodeJs
nodejs中函数的调用实例详解
Oct 31 NodeJs
手把手教你如何使用nodejs编写cli命令行
Nov 05 NodeJs
nodejs搭建本地服务器并访问文件操作示例
May 11 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
图形数字验证代码
2006/10/09 PHP
基于mysql的bbs设计(五)
2006/10/09 PHP
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
PHP框架Swoole定时器Timer特性分析
2014/08/19 PHP
php简单复制文件的方法
2016/05/09 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
PHP读取XML格式文件的方法总结
2017/02/27 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
PHP defined()函数的使用图文详解
2019/07/20 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
python使用urllib2提交http post请求的方法
2015/05/26 Python
详解Python编程中基本的数学计算使用
2016/02/04 Python
基于Python闭包及其作用域详解
2017/08/28 Python
python正则表达式及使用正则表达式的例子
2018/01/22 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
python在不同条件下的输入与输出
2020/02/13 Python
python excel多行合并的方法
2020/12/09 Python
阿迪达斯新加坡官方网站:adidas新加坡
2019/12/06 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
幼儿园家长会欢迎词
2014/01/09 职场文书
教研活动总结
2014/04/28 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
参加招聘会后的感想
2015/08/10 职场文书
人民币符号
2022/02/17 杂记
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技