下面代码实现的功能是:用node.js连接mysql实现用户的注册和登录,这里主要实现的是后端的验证代码,前端显示部分没具体写出。

整个程序的流程是这样的:

1.首先建立数据库reji,数据表user,user表中有account(主键)password和name三个

2.用户进入注册界面,用户输入要注册的账号和密码,前端把用户输入的信息发送给后端,后端对数据进行判断(查询数据库中是否有这个帐号),如果还未注册就允许注册同时把帐号密码和名称写入数据库中并给前端返回1,如果已经注册了就不再允许注册并给前端返回0

2用户进入登录界面,用户输入要登录的账号和密码,前面把用户输入的信息发送给后端,后端对数据进行判断(查询这个帐号对应的密码是否与用户输入的密码相符),如果查询到的密码不符则登录失败后端给前面返回0,如果查询到的密码与用户输入的密码相符后端给前面返回1.

后端部分代码:

var mysql  = require('mysql');  //导入mysql包

var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '123456',
port: '3306',
database: 'reji'
}); connection.connect(); var express = require('express');
var app = express(); app.use(express.static('public'));
//参数里为'/'则是默认打开页面
app.get('/', function (req, res) {
res.sendFile( __dirname + "/" + "index.html" );
}) app.get('/login',function (req,res) {
var response = {
"account":req.query.account,
"password":req.query.password,
};
var selectSQL = "select account,password from user where account = '"+req.query.account+"' and password = '"+req.query.password+"'";
//var selectSQL = "select password from user where account='"+req.query.account+"'";
var addSqlParams = [req.query.account,req.query.password];
connection.query(selectSQL,function (err, result) {
if(err){
console.log('[login ERROR] - ',err.message);
return;
}
//console.log(result);
if(result=='')
{
console.log("帐号密码错误");
res.end("0");//如果登录失败就给客户端返回0,
}
else
{
console.log("OK");
res.end("1");//如果登录成就给客户端返回1
}
});
console.log(response);
//res.end(JSON.stringify(response));
}) app.get('/register.html', function (req, res) {
res.sendFile( __dirname + "/" + "register.html" );
}) //注册模块
var addSql = 'INSERT INTO user(account,password,name) VALUES(?,?,?)'; app.get('/process_get', function (req, res) { // 输出 JSON 格式
var response = {
"account":req.query.account,
"password":req.query.password,
"name":req.query.name
};
var addSqlParams = [req.query.account,req.query.password,req.query.name];
connection.query(addSql,addSqlParams,function (err, result) {
if(err){
console.log('[INSERT ERROR] - ',err.message);
res.end("0");//如果注册失败就给客户端返回0
return;//如果失败了就直接return不会继续下面的代码
}
res.end("1");//如果注册成功就给客户端返回1
console.log("OK");
});
console.log(response);
//res.end(JSON.stringify(response));
}) var server = app.listen(3000, function () { var host = server.address().address
var port = server.address().port console.log("应用实例,访问地址为 http://%s:%s", host, port) })

  前端部分代码:index.html

<html>
<body>
<form action="http://127.0.0.1:3000/login" method="GET">
帐号: <input type="text" name="account"> <br>
密码: <input type="text" name="password">
<input type="submit" value="Submit">
</form>
</body>
</html>

  register.html

<html>
<body>
<form action="http://127.0.0.1:3000/process_get" method="GET">
帐号: <input type="text" name="account"> <br> 密码: <input type="text" name="password"><br>
姓名: <input type="text" name="name">
<input type="submit" value="Submit">
</form>
</body>
</html>

  运行结果:首先是打开服务器

在浏览器中输入127.0.0.1:3000 会跳出index.html的页面

应为我们在index.html中没有加上注册按钮所以,想进入注册页面需要我们手动去查看,在浏览器网址输入栏中输入127.0.0.1:3000/resiger.html  即可进入注册页面

node.js+mysql用户的注册登录验证的更多相关文章

  1. vue.js实现用户评论、登录、注册、及修改信息功能

    vue.js实现用户评论.登录.注册.及修改信息功能:https://www.jb51.net/article/113799.htm

  2. Spring 笔记 -06- 从 MySQL 建库到 登录验证数据库信息(maven)

    Spring 笔记 -06- 从 MySQL 建库到 登录验证数据库信息(maven) 本篇和 Spring 没有什么关系,只是学习 Spring,必备一些知识,所以放在这里了. 本篇内容: (1)M ...

  3. 巨蟒django之CRM1 需求分析&&表结构设计&&注册登录验证

    1.需求分析 .项目 ()业务 ()权限的管理 .CRM customer relationship management 客户关系管理系统 .谁来使用CRM? 销售&&班主任& ...

  4. Node.js + MySQL 实现数据的增删改查

    通过完成一个 todo 应用展示 Node.js + MySQL 增删改查的功能.这里后台使用 Koa 及其相应的一些中间件作为 server 提供服务. 初始化项目 $ mkdir node-cru ...

  5. 零代码第一步,做个添加数据的服务先。node.js + mysql

    node.js + mysql 实现数据添加的功能.万事基于服务! 增删改查之添加数据. 优点:只需要设置一个json文件,就可以实现基本的添加功能,可以视为是零代码. 添加数据的服务实现的功能: 1 ...

  6. 1_python小程序之实现用户的注册登陆验证功能

    python小程序之实现用户的注册登陆验证功能 程序扼要简述:  一.程序流程:1.程序开始2.判断本地文件/数据库是否已存在用户信息,存在则跳转到登陆,否则跳转到注册,注册成功后后跳转到登陆3.判断 ...

  7. node.js+mysql环境搭建

    https://www.jianshu.com/p/9b338095cbe8 node.js+mysql环境搭建 0x01 前言 随着html web技术的发展,和全栈式开发的需求,对于前端人员来讲, ...

  8. Ubuntu 16.04 下部署Node.js+MySQL微信小程序商城

    转载于这篇文章 关于pm2看这篇文章 最近在研究小程序,申请了域名之后,再一次来配置环境,根据作者的步骤基本上完成了网站的架构,但由于环境路径等不同,配置上会有所不同,因此记录下来. 1.更新系统和安 ...

  9. Node.js实操练习(一)之Node.js+MySQL+RESTful

    前言 最近学习了一下node.js相关的内容,在这里初步做个小总结,说实话关于本篇博客的相关内容,自己很久之前就已经有过学习,但是你懂的,“好记性不如烂笔筒”,学过的东西不做笔记的话,很容易就会忘记的 ...

随机推荐

  1. 【Android - 控件】之V - DrawerLayout的使用

    DrawerLayout是Android V4包中的一个布局控件,用来实现一个抽屉样式的布局. DrawerLayout通过设置子视图的layout_gravity来决定子视图停靠在屏幕的哪个边缘外侧 ...

  2. php: $$str

    这种写法称为可变变量有时候使用可变变量名是很方便的.就是说,一个变量的变量名可以动态的设置和使用.一个普通的变量通过声明来设置,例如: <?php$a = "hello";? ...

  3. 安装PHP5和PHP7

    5月25日任务 课程内容: 11.10/11.11/11.12 安装PHP511.13 安装PHP7php中mysql,mysqli,mysqlnd,pdo到底是什么http://blog.csdn. ...

  4. VMware中windows虚拟机的安装流程

    1.打开安装的VMware 15,点击新建虚拟机 2.选择典型即可,点击下一步          3.选择“稍后安装操作系统”,点击下一步        4.选择想安的版本,点击下一步         ...

  5. ThinkPHP 实现数据库事务回滚示例代码

    ThinkPHP提供了数据库的事务支持,如果要在应用逻辑中使用事务,可以参考下面的方法:   启动事务: $User->startTrans(); 提交事务: $User->commit( ...

  6. element table 先显示暂无数据 之后再加载数据 问题

    项目中的表格请求数据时,进去页面,先出现 ''暂无数据'' 字样闪现一下之后在进行加载数据,用户体验十分不好 解决办法: <template> <el-table :data=&qu ...

  7. Java基础IO类之字符串流(查字符串中的单词数量)与管道流

    一.字符串流 定义:字符串流(StringReader),以一个字符为数据源,来构造一个字符流. 作用:在Web开发中,我们经常要从服务器上获取数据,数据返回的格式通常一个字符串(XML.JSON), ...

  8. Java 从入门到进阶之路(十二)

    在之前的文章我们介绍了一下 Java 类的重写及与重载的区别,本章我们来看一下 Java 类的 private,static,final. 我们在之前引入 Java 类概念的时候是通过商场收银台来引入 ...

  9. luogu P1168 中位数 |树状数组+二分

    题目描述 给出一个长度为NN的非负整数序列A_i,对于所有1 ≤ k ≤ (N + 1) / 21≤k≤(N+1)/2,输出A_1, A_3, -, A_2k - 1的中位数.即前1,3,5,-个数的 ...

  10. iOS本地数据存储

    http://www.jianshu.com/p/a3eeae99e902 大牛整理的超全