利用node.js+mongodb如何搭建一个简单登录注册的功能详解


Posted in Javascript onJuly 30, 2017

前言

最近突然对数据库和后台感兴趣了,就开始了漫长的学习之路,想想自己只是一个前端,只会java斯科瑞普,所以就开始看nodejs,看着看着突然发现mongodb和nodejs更配哦!,遂就开了我的mongodb之路。下面话不多说了,来一起看看详细的介绍吧。

mongodb简介

就超简洁的说一下,mongo就是一个nosql的数据库,不使用sql的语法,当然其实也是大同小异的,增删改查还是差不多的,但是在概念上mongo还是跟mysql有相当大的区别的;比如在mongo中没有表的概念,而是一个集合;由于这些概念性的东西有很多,我在这里给各位附上链接,你们自己看一下biu!我是链接!;

说说我的小demo使用到的一些东西

直接怼package的依赖图片吧

利用node.js+mongodb如何搭建一个简单登录注册的功能详解

说下各个部分的作用:

  • express:这就是nodejs的一个web应用的开发框架;
  • body_parser:这个写nodejs的应该都知道,用于解析客户端请求的body中的内容的一个中间件,因为要用到表单提交,所以需要解析获得的数据;
  • mongoose:从这个名字就可以知道这个是和mongodb有关系的依赖;这个依赖是nodejs封装用来连接和操作mongodb数据库的;
    其余几个我相信各位应该都知道,其实这个我相信我不介绍各位应该也都知道的,原谅我的话痨!!!

列表结构列表

还是直接怼图片吧!实在是不想生成tree了!

利用node.js+mongodb如何搭建一个简单登录注册的功能详解

其实这是一个很简单的demo!主要还是体验出nodejs对前端静态资源的渲染,以及nodejs的路由,还有其对mongodb的支持!
user.js里面确定了mongoose的一个Schema,也就是写入数据库的格式

var UserSchema = new Schema({
 username : String,
 userpsw : String,
 logindate : Date
})

这样就构建了一个数据模型;

从项目目录上可以看出,我只是写了简单三个页面,其实最最最主要的只是一个文件,app.js;

app.js内容

在这个里面我主要写了关于接受前台传入的数据是怎么存入mongodb的,还有是怎么判断是否已经注册;是否输入了正确的账号密码的;

在这我放一段检测注册的代码,在注册成功后就将用户的信息写入到数据库

app.post('/register',(req, res) => {
 console.log('user in session')
 console.log(req.session);
 //先查询有没有这个user
 console.log("req.body"+req.body);
 var UserName = req.body.username;
 var UserPsw = req.body.password;
 //通过账号验证
 var updatestr = {username: UserName};
 res.setHeader('Content-type','application/json;charset=utf-8')
  console.log(updatestr);
  userSchema.find(updatestr, function(err, obj){
   if (err) {
    console.log("Error:" + err);
   }
   else {
    if(obj.length == 0){
     insert(UserName,UserPsw); 
     res.send({status:'success',message:'true'}) 
    }else{
     res.send({status:'success',message:'false'}) 
    }
   }
  }) 
});

这样的话就可以将用户传入的信息存入到数据库了;登录同理,先将传过来的数据在数据库里查询是否已经有,然后再将用户名和密码都一一对比,如果匹配的话就返回登录成功;

说说前端部分

原谅我的表达能力是真的有限,上面的后端各位肯定没怎么看懂,欢迎去观看我的源码;下面来说下我对前端部分的一些处理;
前端部分主要就是在login页,我做了一个cookie的处理,当用户点击保存账户的时候,我就将用户的信息存入cookie下次登录的时候就不用麻烦去输入用户名和密码了;

if($('#mycheck').prop('checked')==true){
      setCookie('username',username,7);
     }

其实也就是当登录验证成功并且用户check了checkbox的时候将cookie存入;下次登录的时候直接将cookie值解析,然后放入到用户名的input框的value值中!

由于我的表达能力有限,文章可能写的不是那么详细,有看不懂的可以去看源码

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持

Javascript 相关文章推荐
张孝祥JavaScript学习阶段性总结(2)--(X)HTML学习
Feb 03 Javascript
对YUI扩展的Gird组件 Part-1
Mar 10 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
Jan 22 Javascript
JavaScript检查数字是否为整数或浮点数的方法
Jun 09 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
Aug 14 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
Dec 14 Javascript
vue+element-ui+ajax实现一个表格的实例
Mar 09 Javascript
原生JS+HTML5实现跟随鼠标一起流动的粒子动画效果
May 03 Javascript
jquery获取img的src值实例介绍
Jan 16 jQuery
JavaScript使用面向对象实现的拖拽功能详解
Jun 12 Javascript
Angular8路由守卫原理和使用方法
Aug 29 Javascript
JavaScript 异步时序问题
Nov 20 Javascript
Vue自定义指令详解
Jul 28 #Javascript
ReactNative踩坑之配置调试端口的解决方法
Jul 28 #Javascript
vuejs 单文件组件.vue 文件的使用
Jul 28 #Javascript
Vue单文件组件的如何使用方式介绍
Jul 28 #Javascript
VUE axios上传图片到七牛的实例代码
Jul 28 #Javascript
jQuery dateRangePicker插件使用方法详解
Jul 28 #jQuery
完美实现js拖拽效果 return false用法详解
Jul 28 #Javascript
You might like
PHP的ASP防火墙
2006/10/09 PHP
php中通过Ajax如何实现异步文件上传的代码实例
2011/05/07 PHP
php牛逼的面试题分享
2013/01/18 PHP
解析用PHP实现var_export的详细介绍
2013/06/20 PHP
基于PHP如何把汉字转化为拼音
2015/12/11 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
javascript之函数直接量(function(){})()
2007/06/29 Javascript
JS DOM 操作实现代码
2010/08/01 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
jQuery DOM删除节点操作指南
2015/03/03 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
2016/03/07 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
Angular @HostBinding()和@HostListener()用法
2018/03/05 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
2018/06/19 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
2020/08/03 Javascript
Python中实现参数类型检查的简单方法
2015/04/21 Python
python中as用法实例分析
2015/04/30 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
Python 多维List创建的问题小结
2019/01/18 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
Casadei卡萨蒂官网:意大利奢侈鞋履品牌
2017/10/28 全球购物
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
对照四风自我剖析材料
2014/10/07 职场文书
离婚协议书范本2014
2014/10/27 职场文书
Java基础之线程锁相关知识总结
2021/06/30 Java/Android
Java使用JMeter进行高并发测试
2021/11/23 Java/Android
python如何查找列表中元素的位置
2022/05/30 Python