使用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. Java基础语法05-面向对象-封装-包-构造器-初始化

    封装 面向对象三大特性:封装.继承.多态 封装的好处 1.调用者:方便使用/简化使用 2.设计者:安全,可控 隐藏对象内部的复杂性,只对外公开简单的接口.便于外界调用,从而提高系统的可扩展性.可维护性 ...

  2. Github原生CI/CD,初尝Github Actions

    Github 原生 CI/CD,初尝 Github Actions Intro Github 目前已经推出了自己的 CICD 服务 -- Github Actions,而且比微软的 Azure Dev ...

  3. Python高级特性——迭代(Iteration)

    1.给定一个集合list或者tuple,可以通过for …… in ……的语法来实现循环遍历,这个循环我们就叫做迭代 迭代list: >>> m = ['haha','hehe',' ...

  4. VO(视图模型) 与 DTO(数据传输对象)的区别

    目录 VO(视图模型) 与 DTO(数据传输对象)的区别 1.VO与DTO概念 2.VO 视图模型的必要性与解耦 2.1 视图模型 2.2 视图模型存在的必要性 2.3 视图模型的解耦 3.DTO 存 ...

  5. 松软科技web课堂:JavaScript Math 对象

    JavaScript Math 对象允许您对数字执行数学任务. 实例 Math.PI; // 返回 3.141592653589793 Math.round() Math.round(x) 的返回值是 ...

  6. Delphi CreateProcess 创建一个新的进程和它的主线程

    Delphi CreateProcess WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件 CreateProcess百科名片 WIN32 ...

  7. 网站后台getshell

    phpmyadmin后台Getshell 获取 web 绝对路径 select @@basedir; 检测是否有写入权限 show global variables like 'secure%' ## ...

  8. java基础 - 什么是hashmap的负载因子,hashmap的容量(即桶个数)为什么是2的幂次

    HashMap的负载因子是指,比如容量为16,负载因子为0.75,则当HashMap的元素个数达到16*0.75=12时,触发扩容.(16和0.75是初始默认的容量和负载因子). HashMap的容量 ...

  9. python爬取网页数据

    一.利用webbrowser.open()打开一个网站: ? 1 2 3 >>> import webbrowser >>> webbrowser.open('ht ...

  10. IT兄弟连 HTML5教程 CSS3揭秘 CSS3概述

    对于Web开发者来说,CSS3不只是一门新奇的技术,更重要的是这些全新概念的Web应用给开发人员带来了无限的可能性,也极大地提高了开发效率.我们不必再依赖图片或者JavaScript去完成圆角.多背景 ...