使用Node.js + Navicat for mysql实现的登录注册功能

数据库中存在有”user_id,user_name,password,user_img,user_number“字段,其中"user_id,user_img,user_number"可为空

//注册
app.all('/XCDoor/reset',(req,res)=>{
//账号和密码不为空
if(req.query.user_name !== '' && req.query.password !== ''){
    // 根据前端传过来的用户名来查找数据库该用户名
conn.query("select * from `user_info` where user_name = '" + req.query.user_name +"'",(e,r)=>{
// 为0代表未查到用户
if(r.length == 0){
          // 往数据库中插入一条记录,存入前端传过来的用户名和密码,其余可为空的字段以' '表示
conn.query("INSERT INTO `user_info` VALUES ('','" + req.query.user_name + "','" + req.query.password + "','','')")
          // 返回给前端"注册成功"
conn.query("select * from `user_info` where user_name = '" + req.query.user_name +"'",(e,r)=>res.json(new Result({msg:'注册成功!',data:r})))
}else{ // 否则查到用户信息
          // 返回给前端"用户名存在"
       conn.query("select * from `user_info` where user_name = '" + req.query.user_name +"'",(e,r)=>res.json(new Result({msg:'用户名存在!',data:r})))
}
})
}else{
     // 返回给前端"用户名或密码不能为空"
conn.query("select * from `user_info` where user_name = '" + req.query.user_name +"'",(e,r)=>res.json(new Result({msg:'用户名或密码不能为空!',data:r})))
}
})
// 登录
app.all('/XCDoor/login',(req,res)=>{
  // 判断前端传过来的值是否为空,如果为空,提示"用户名或密码不能为空"
if(req.query.user_name == '' || req.query.password == ''){
conn.query("select * from `user_info` where user_name = '" + req.query.user_name +"'",(e,r)=>res.json(new Result({msg:'用户名或密码不能为空!'})))
}
  // 根据前端传过来的用户名在数据库中查找该用户名
conn.query("select * from `user_info` where user_name = '" + req.query.user_name +"'",(e,r)=>{
// 为0代表未查到用户
if(r.length == 0){
conn.query("select * from `user_info` where user_name = '" + req.query.user_name +"'",(e,r)=>res.json(new Result({msg:'您输入的账号未注册!'})))
}else{
       // 判断前端传过来的用户名和密码是否与数据库中查找到的一致
if(req.query.user_name == r[0].user_name && req.query.password == r[0].password){
          // 一致则返回给前端"登录成功"
conn.query("select * from `user_info` where user_name = '" + req.query.user_name +"'",(e,r)=>res.json(new Result({msg:'登录成功!',data:r})))
}else{
          // 否则返回给前端"用户名和密码错误"
conn.query("select * from `user_info` where user_name = '" + req.query.user_name +"'",(e,r)=>res.json(new Result({msg:'用户名或密码错误!'})))
}
}
})
})

Node.js实现登录注册功能的更多相关文章

  1. node.js连接数据库登录注册,修改用户(页面的ajax请求)

    首先给大家看一下目录结构,结构如下: index.html 首页(显示所有的用户信息) login.html 登录页 register.html 注册页 db.js 配置链接数据库参数 dbhelpe ...

  2. Node数据库入门(登录注册功能)

    1.安装 (1).mysql模块安装 npm i mysql -D (2).co-msql模块安装(该模块不是一个独立的模块,而是mysql的封装,他可以把普通接连封装成一个可以做异步调用的连接) n ...

  3. vue koa2 mongodb 从零开始做个人博客(一) 登录注册功能前端部分

    0.效果演示 插入视频插不进来,就很烦.可以出门右拐去优酷看下(点我!). 1.准备工作 1.1前端框架 前端使用了基于vue.js的nuxt.js.为什么使用nuxt.js? 首先我做的是博客的项目 ...

  4. js验证登录注册

    js验证登录注册的优势,在前台直接验证,不需要在后台读取返回数据验证,减轻服务器压力. 登陆验证得必要性,拦截恶意脚本的登录注册攻击.哈哈,当然有些高手是可以直接跳过js验证的. 所以还是后台验证,并 ...

  5. Java Spring+Mysql+Mybatis 实现用户登录注册功能

    前言: 最近在学习Java的编程,前辈让我写一个包含数据库和前端的用户登录功能,通过看博客等我先是写了一个最基础的servlet+jsp,再到后来开始用maven进行编程,最终的完成版是一个 Spri ...

  6. SSM 实现登录注册功能

    1.上一篇SSM框架搭建好了之后就要开始写功能了,现在来写一个简单的登录注册功能 这几个包是自己手动创建的,然后往里面写代码 2.代码详情 package com.maike.controller; ...

  7. flask 开发用户登录注册功能

    flask 开发用户登录注册功能 flask开发过程议案需要四个模块:html页面模板.form表单.db数据库操作.app视图函数 1.主程序 # app.py # Auther: hhh5460 ...

  8. JAVAEE_Servlet_20_登录注册功能

    实现登录注册功能 注册功能 import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import j ...

  9. 一个关于vue+mysql+express的全栈项目(三)------ 登录注册功能的实现(已经密码安全的设计)

    本系列文章,主要是一个前端的视角来实现一些后端的功能,所以不会讲太多的前端东西,主要是分享做这个项目学到的一些东西,,,,, 好了闲话不多说,我们开始搭建后端服务,这里我们采用node的express ...

随机推荐

  1. Oracle - exp实战

    一.概述 exp/imp是oracle中的一个逻辑导出和导入工具,假想一个场景,当我们使用exp命令在对用户进行导出的时候,如果该用户中的某些表的数据有修改,或表结构进行了修改,或者表被删除,那么我们 ...

  2. Centos7部署mysql

    安装mysql yum install mysql mysql-server 会出现以下错误: [root@yl-web yl]# yum install mysql-server Loaded pl ...

  3. Git实战指南----跟着haibiscuit学Git(第三篇)

    笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...

  4. CSS学习笔记-过渡模块

    过渡模块:    1.过渡三要素        1.1必须要有属性发生变化        1.2必须告诉系统哪个属性需要执行过渡效果        1.3必须告诉系统过渡效果持续时长    2.格式: ...

  5. 分析Android APK-反编译修改打包

    2.2 这个章节的主要作用就是,修改一个别人的app,在里边增加一段自己的广告代码. 2.2.1 UAA 编译修改,工具安装配置之前讲过,无需再赘述.我们找到了一款游戏app的apk, 找到所在的ap ...

  6. packstack-ironic

    安装openstack Pike版本, 其它版本安装方法类似. centos7.6 packstack目前对NetworkManager 还不支持,我们修改下配置: systemctl disable ...

  7. Java的反射机理

    Java反射是一种间接操作目标对象的机制,核心是JVM在运行的时候才动态加载类,并且对于任意一个类,都能够知道这个类的全部属性和方法等,调用方法以及访问属性,而且不需要提前在编译期知道运行的对象是什么 ...

  8. ceph安装笔记

    配置源 ceph版本为luminous [root@ceph-node1 ~]# yum install -y https://dl.fedoraproject.org/pub/epel/epel-r ...

  9. hibernate-positional-parameter-does-not-exist-1-in-query

    经过bug的排查,问题出在,scsj字段的赋值上; 通过字符串在数据库端生成即可:

  10. 使用Castle DynamicProxy (AOP)

    在本文中,我将引导您了解.NET环境中的面向方面编程(AOP)概念,以及如何使用Castle DynamicProxy创建和附加方面.在我们开始之前,让我快速介绍AOP和  IoC.如果您已经熟悉这些 ...