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 相关文章推荐
Windows系统中安装nodejs图文教程
Feb 28 NodeJs
nodejs创建web服务器之hello world程序
Aug 20 NodeJs
用Nodejs搭建服务器访问html、css、JS等静态资源文件
Apr 28 NodeJs
nodejs 子进程正确的打开方式
Jul 03 NodeJs
深入学习nodejs中的async模块的使用方法
Jul 12 NodeJs
nodejs中解决异步嵌套循环和循环嵌套异步的问题
Jul 12 NodeJs
深入解析nodejs HTTP服务
Jul 25 NodeJs
Nodejs调用WebService的示例代码
Sep 29 NodeJs
nodejs实现大文件(在线视频)的读取
Oct 16 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 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/09/05 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
2014/11/04 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
WordPress中的shortcode短代码功能使用详解
2016/05/17 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
javaScript复制功能调用实现方案
2012/12/13 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
2013/01/23 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
利用JS实现数字增长
2016/07/28 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
2017/05/08 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
讲解vue-router之什么是嵌套路由
2018/05/28 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
Python中使用pprint函数进行格式化输出的教程
2015/04/07 Python
python 转换 Javascript %u 字符串为python unicode的代码
2016/09/06 Python
python和shell获取文本内容的方法
2018/06/05 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
python的slice notation的特殊用法详解
2019/12/27 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
最新远光软件笔试题面试题内容
2013/11/08 面试题
do you have any Best Practice for testing
2016/06/04 面试题
小学语文业务学习材料
2014/06/02 职场文书
保险公司开门红口号
2014/06/21 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
2015公务员试用期工作总结
2014/12/12 职场文书
财务人员岗位职责
2015/02/03 职场文书
灵山大佛导游词
2015/02/04 职场文书
青岛海底世界导游词
2015/02/11 职场文书
银行求职信范文
2019/05/13 职场文书
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL
配置Kubernetes外网访问集群
2022/03/31 Servers