node.js+mysql用户的注册登录验证
下面代码实现的功能是:用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用户的注册登录验证的更多相关文章
- vue.js实现用户评论、登录、注册、及修改信息功能
vue.js实现用户评论.登录.注册.及修改信息功能:https://www.jb51.net/article/113799.htm
- Spring 笔记 -06- 从 MySQL 建库到 登录验证数据库信息(maven)
Spring 笔记 -06- 从 MySQL 建库到 登录验证数据库信息(maven) 本篇和 Spring 没有什么关系,只是学习 Spring,必备一些知识,所以放在这里了. 本篇内容: (1)M ...
- 巨蟒django之CRM1 需求分析&&表结构设计&&注册登录验证
1.需求分析 .项目 ()业务 ()权限的管理 .CRM customer relationship management 客户关系管理系统 .谁来使用CRM? 销售&&班主任& ...
- Node.js + MySQL 实现数据的增删改查
通过完成一个 todo 应用展示 Node.js + MySQL 增删改查的功能.这里后台使用 Koa 及其相应的一些中间件作为 server 提供服务. 初始化项目 $ mkdir node-cru ...
- 零代码第一步,做个添加数据的服务先。node.js + mysql
node.js + mysql 实现数据添加的功能.万事基于服务! 增删改查之添加数据. 优点:只需要设置一个json文件,就可以实现基本的添加功能,可以视为是零代码. 添加数据的服务实现的功能: 1 ...
- 1_python小程序之实现用户的注册登陆验证功能
python小程序之实现用户的注册登陆验证功能 程序扼要简述: 一.程序流程:1.程序开始2.判断本地文件/数据库是否已存在用户信息,存在则跳转到登陆,否则跳转到注册,注册成功后后跳转到登陆3.判断 ...
- node.js+mysql环境搭建
https://www.jianshu.com/p/9b338095cbe8 node.js+mysql环境搭建 0x01 前言 随着html web技术的发展,和全栈式开发的需求,对于前端人员来讲, ...
- Ubuntu 16.04 下部署Node.js+MySQL微信小程序商城
转载于这篇文章 关于pm2看这篇文章 最近在研究小程序,申请了域名之后,再一次来配置环境,根据作者的步骤基本上完成了网站的架构,但由于环境路径等不同,配置上会有所不同,因此记录下来. 1.更新系统和安 ...
- Node.js实操练习(一)之Node.js+MySQL+RESTful
前言 最近学习了一下node.js相关的内容,在这里初步做个小总结,说实话关于本篇博客的相关内容,自己很久之前就已经有过学习,但是你懂的,“好记性不如烂笔筒”,学过的东西不做笔记的话,很容易就会忘记的 ...
随机推荐
- 【RN - 基础】之FlexBox弹性布局
前言 弹性盒模型(The Flexible Box Module),又叫FlexBox,意为“弹性布局”,旨在通过弹性的方式来对齐和分布容器中内容的空间,使其能适应不同的屏幕,为盒装模型提供最大的灵活 ...
- 八大机器学习框架对比及Tensorflow的优势
八大机器学习框架的对比: (1) TensorFlow:深度学习最流行的库之一,是谷歌在深刻总结了其 前身 DistBelief 的经验教训上形成的:它不仅便携.高效.可扩 展,还能再不同计算机上运 ...
- solr 的安装和配置
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过Http Get操 ...
- spring boot 中@Mapper和@Repository的区别
0--前言 @Mapper和@Repository是常用的两个注解,两者都是用在dao上,两者功能差不多,容易混淆,有必要清楚其细微区别: 1--区别 @Repository需要在Spring中配置扫 ...
- 3分钟了解ServiceStage 应用智能化运维【华为云分享】
[摘要] 微服务云应用平台(ServiceStage)是面向企业及开发者的一站式DevOps平台服务,支持基于微服务的应用开发.治理.部署及运维监控的全生命周期管理,并提供大规模容器集群管理及中间件服 ...
- Forrester:华为云容器是容器混合云最佳选择
近日,国际权威咨询机构Forrester发布<The Forrester New WaveTM: Public Cloud Enterprise Container Platforms, Q3 ...
- .Net Core下使用MQTT协议直连IoT平台
[摘要] .Net平台通过原生MQTT接口,作为南向设备对接OceanConnect平台 因为种种历史原因吧,目前华为平台上对.net的支持案例SDK确实比较少,当看到各种语言的SDK和Demo,唯独 ...
- 【经验分享】如何搭建本地MQTT服务器(Windows ),并进行上下行调测
网上查了很多资料,实际动手的时候踩了很多坑,现在把我的经验分享给大家: 一.安装和启动 使用EMQTT,下载完直接到bin目录下执行emqttd start就可以了,简单方便 下载地址:https:/ ...
- 源码分析 RocketMQ DLedger 多副本存储实现
目录 1.DLedger 存储相关类图 1.1 DLedgerStore 1.2 DLedgerMemoryStore 1.3 DLedgerMmapFileStore 2.DLedger 存储 对标 ...
- 【实用工具】使用Java封装可执行exe应用全过程
目录 编写java代码 打包 创建exe文件 压缩 总结 本文将使用exe4j将java项目封装为可以发送给他人使用的工具为例,来记录将java项目封装为exe文件的全过程 编写java代码 目标:创 ...