利用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中的私有成员
Sep 18 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
Jan 29 Javascript
页面装载js及性能分析方法介绍
Mar 21 Javascript
JS在IE下缺少标识符的错误
Jul 23 Javascript
js实现按钮加背景图片常用方法
Nov 01 Javascript
关于编写性能高效的javascript事件的技术
Nov 28 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
Jun 12 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
Oct 10 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
Nov 23 Javascript
详解angularjs结合pagination插件实现分页功能
Feb 10 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
Mar 04 Javascript
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 Vue.js
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
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
2016/03/14 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
javascript 获取网页参数系统
2008/07/19 Javascript
JS删除字符串中重复字符方法
2014/03/09 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
简介AngularJS中$http服务的用法
2016/02/06 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
JS获取url参数、主域名的方法实例分析
2016/08/03 Javascript
js实现带简单弹性运动的导航条
2017/02/22 Javascript
整理关于Bootstrap表单的慕课笔记
2017/03/29 Javascript
微信小程序封装http访问网络库实例代码
2017/05/24 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
小程序云函数调用API接口的方法
2019/05/17 Javascript
Layui Table js 模拟选中checkbox的例子
2019/09/03 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
layui对工具条进行选择性的显示方法
2019/09/19 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Python文件操作类操作实例详解
2014/07/11 Python
python图像处理之反色实现方法
2015/05/30 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
Python实现壁纸下载与轮换
2020/10/19 Python
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
高一地理教学反思
2014/01/18 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
Nginx四层负载均衡的配置指南
2021/06/11 Servers
用Python编写简单的gRPC服务的详细过程
2021/07/04 Python
详解Go语言中Get/Post请求测试
2022/06/01 Golang