前端学习(554):node实现登录和注册第二部分代码

jquery.min.js

npm安装jQuery并引入

app.js

const http = require('http');
const url = require('url')
const querystring = require('querystring')
const fs = require('fs')
let user={admin:12345
}
http.createServer((req,res)=>{let path,get,post//如果是get请求if(req.method=='GET'){let{pathname,query} = url.parse(req.url,true)path=pathname,get=querycomplete()//如果是POST请求}else if(req.method=='POST'){let arr=[]path=req.urlreq.on('data',buffer=>{arr.push(buffer)})req.on('end',()=>{post=querystring.parse(Buffer.concat(arr).toString())complete()})}function complete(){if(path=='/login'){res.writeHead(200,{"Content-Type":"text/plain;charset=utf-8"})let {username,password}=getif(!user[username]){res.end(JSON.stringify({err:1,msg:"用户不存在"}))}else if(user[username]!=password){res.end(JSON.stringify({err:1,msg:"密码错误"}))}else{res.end(JSON.stringify({err:0,msg:"登录成功"}))}}else if(path=='/reg'){res.writeHead(200,{"Content-Type":"text/plain;charset=utf-8"})let{username,password}=postif(user[username]){res.end(JSON.stringify({err:1,msg:"账户已经存在"}))}else{user[username]=passwordres.end(JSON.stringify({err:0,msg:"注册成功"}))}}else{fs.readFile(`./${path}`,(err,data)=>{if(err){res.end('404')}else{res.end(data)}})}}
}).listen(8887);

login.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="jquery.min.js"></script>
</head>
<body>用户名:<input type="text" id="username"><br/> 密码:<input type="password" id='password'><br/><button id="login">登录</button><br/><button id="reg">注册</button><br/><script>$('#login').click(function() {$.ajax({url: "/login",data: {username: $('#username').val(),password: $('#password').val()},dataType: "json",success(res) {//执行成功返回的是json值if (res.err) {alert(res.msg)} else {alert("登录成功")location.href="admin.html"}}})})$('#reg').click(function() {$.ajax({url: "/reg",method:"post",data: {username: $('#username').val(),password: $('#password').val()},dataType: "json",success(res) {//执行成功返回的是json值if (res.err) {alert(res.msg)} else {alert("注册成功")}}})})</script>
</body>
</html>

admin.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><p>我是歌谣(后台)</p>
</body>
</html>

开启服务器

运行结果

输入网址

h

admin 123

admin 12345

点击注册

mdsdr  123

再点击注册

点击登录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转]关于数据库的并发性的一个解决方案

我先把流程说出来&#xff0c;&#xff0c;比如修改一个记录&#xff1a;当用户点修改时&#xff0c;从数据库读出数据并显示到编辑菜单中&#xff0c;然后再编辑数据&#xff0c;再点确定保存到数据库中。如果多 个用户&#xff0c;当A用户点修改到保存该数据这一时间段&#…

encapsulation java_Java - 封装(Encapsulation)

Java - 封装(Encapsulation)Encapsulation是四个基本OOP概念之一。 其他三个是继承&#xff0c;多态和抽象。Java中的封装是将数据(变量)和作用于数据(方法)的代码作为一个单元包装在一起的机制。 在封装中&#xff0c;类的变量将从其他类隐藏&#xff0c;并且只能通过其当前类…

『AA』AutoAnchor自动猫

2012-09-17 19:40:31&#xff1a;嘿嘿&#xff0c;给自己出了道编程题&#xff0c;难度不大&#xff08;YY都可以&#xff09;&#xff0c; 大家有兴趣可以自己去实现下。 文章目录 引子思路用法bug源代码 & 可执行文件引子 一篇博文如果太长的话&#xff0c;为博文标题添加…

前端学习(557):css与百分比单位

普通元素的百分比是按照元素的宽度决定的 绝对定位的百分比是按照第一个定位元素的容器的宽度计算的

java 微信隐藏右上角_React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能

废话不多说了&#xff0c;直接给大家贴代码了&#xff0c;具体代码如下所示&#xff1a;/*** Created by wuyakun on 2017/5/23.*/let wxUtils {};/*** 是否开启右上角Menu* param open*/wxUtils.optionMenu function (open true) {if (open) {openOptionMenu();} else {dis…

JSP中文及传中文参数乱码解决方法小结

在使用JSP的过程中&#xff0c;最使人头疼的一个问题就是中文乱码问题&#xff0c;以下是我在软件开发中遇到的乱码问题以及解决方法。 1、JSP页面乱码 这种乱码的原因是应为没有在页面里指定使用的字符集编码&#xff0c;解决方法&#xff1a;只要在页面开始地方用下面代码指定…

java递归遍历xml所有元素_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...

2019独角兽企业重金招聘Python工程师标准>>>xml中加入了几条&#xff0c;为了方便查询时作为示例。话不多说见代码注释&#xff1a;DTD文件&#xff1a;SwordTypeDefinition.dtdXML文件&#xff1a;SwordLib.xmlSwordLibrary SYSTEM "SwordTypeDefinition.dtd&qu…

调用IOS邮件系统发送邮件

1.导入MessageUI.framework框架2.在需要应用的控制器头文件&#xff1a;#import <MessageUI/MessageUI.h>&#xff0c;并加入委托&#xff1a;<MFMailComposeViewControllerDelegate>3.实现方法&#xff1a;-(void)displayComposerSheet { MFMailComposeViewCon…

list python 转tensor_Pytorch--Tensor, Numpy--Array,Python--List 相互之间的转换。

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循CC 4.0 by-sa版权协议&#xff0c;转载请附上原文出处链接和本声明。本文链接&#xff1a;https://blog.csdn.net/weixin_37589575/article/details/994463941.1 List --> Arrary: np.array(List 变量)a [1, 2, 3, …

上传文件的跨域处理(转)

&#xff08;文章转自&#xff1a;http://blog.robotercoding.com/?p62&#xff09; 为了减轻主服务器的负担&#xff0c;希望把图片的处理单独拿出来&#xff0c;由图片服务器来处理图片上传&#xff0c;浏览等操作。图片上传使用了ajax方式&#xff0c;采用了ajaxfileupload…

嵌入式开发中利用strstr()对部分模块回传数据进行解析的问题(坑)

受到以下博文的启发&#xff1a; https://www.cnblogs.com/yup1983/p/11337837.html 验证&#xff1a; 最近通过ESP8266远程控制小车&#xff0c;在wifi回传的数据解析过程中遇到标题所述的烦恼 如上截图所示&#xff0c;数据回传过程中会接受到‘\0’字节对应的ASCII码为0x0…

前端学习(561):解决margin重叠第二种情况父子

第一种方法 第二种方法 第三种方法 第四种方法 第五种方式

HDU 4417 Super Mario

划分树 二分 二分枚举第k小的数与h比较大小。 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <algorithm> using namespace std; const int MAXN 100100; struct Node {int l, r; }T[MAXN << 2];int d[MAXN], s[MAXN]…

python导入模块不在同一文件夹下_Python小技之自定义不同文件夹下模块导入问题...

一般在写一个项目的时候, 为了将项目模块化, 更加的清晰明了, 会将不同功能的模块放入不同的文件夹项目如下:├── spider│ └── spider.py # 爬虫文件└── utils├── __init__.py└── downloads.py # 下载模块downloads.py内容如下:def download():print("im…

[Webapp]国内移动端浏览器占比

1. 国内移动端浏览器占比 Source: StatCounter Global Stats - Mobile Browser Market Share US及IOS、Android自带浏览器占据90%的市场份额 中国各手机浏览器的用户渗透率 2. 源自2012年中国手机浏览器市场集中度较高。源自《中国手机浏览器用户行为研究报告》 根据调查UC…

java比较三个数的编程_java编程基础篇--------- 编写一个程序,从键盘输入三个整数,求三个整数中的最小值。...

编写一个程序,从键盘输入三个整数,求三个整数中的最小值。 关键:声明变量temp 与各数值比较。 package Exam01; import java.util.Scanner; public class Topic03 {public static void main(String[] args) {// TODO Auto-generated method stubint a,b,c; //输入 Scanner…

前端学习(563):干掉block重叠margin重叠

第一种方法 第二种方法 第三种方法 第四种方法