nodejs基础运用——模拟注册登陆

正如维基百科 所说:“Node.js 是谷歌 V8 引擎、libuv平台抽象层 以及主体使用 Javscript 编写的核心库三者集合的一个包装外壳。” 除此之外,值得注意的是,Node.js 的作者瑞恩·达尔 (Ryan Dahl) 的目标是创建具有实时推送能力的网站。在 Node.js 中,他给了开发者一个使用事件驱动来实现异步开发的优秀解决方案。

今天就来分享一个基础的nodejs运用----------模拟注册登陆。现在都是用的第三方,几乎没人用原生的来自己写。不过如果你是初学者,还是可以看看的。希望大神门勿喷小女子哈!!!

首先,您需要建立一个文件,在文件下建一个html文件夹,json文件,如图,以下代码中用到的文件都在图中。

此外,json数据格式如下:

直接在命令台,进入你的index.js使用命令node index.js 来在浏览器展示。提示使用你自己的域名+端口号

 

 好了,直接上的代码吧

//创建服务器
var http=require('http');

var fs=require('fs');
var url=require('url');
var querystring=require('querystring');

var server=http.createServer(handle).listen(3000);
function handle(req,res){
var filePath='';
//显示的页面
if (req.url=="/"){
filePath='./html/index.html';
fs.exists(filePath,function(exists){
if (exists){
fs.readFile(filePath,function(err,data){
if (err){return}
res.end(data);
})
}else{
send404(res)
}
})
}
//通过req.method判断用户是否注册和登陆
// get 判断用户是否注册过 post 没有注册的注册,并保存响应数据到数据json表中
else if(req.url.indexOf('/from')!=-1){
if (req.method=='GET'){
// console.log(req.url) ///from?username=14545&password=4546536636
// .解析url,返回一个json格式的数组 url.parse(‘http://www.baidu.com?page=1’,true);
var parme=url.parse(req.url,true);
// console.log(parme)
// {
// protocol: null,
// slashes: null,
// auth: null,
// host: null,
// port: null,
// hostname: null,
// hash: null,
// search: '?username=14545&password=4546536636',
// query: { username: '14545', password: '4546536636' },
// pathname: '/from',
// path: '/from?username=14545&password=4546536636',
// href: '/from?username=14545&password=4546536636' }
var info=parme.query;
// 拿到用户输入的信息,与数据库对比
var username=info.username;
var password=info.password;
fs.readFile('./tsconfig.json','utf-8',function(err,data){
if (err){
return;
}
// console.log(data)
// {
// "success":'1',
// "data": [
// {"username":"wj",
// "pasword":"123456"
// }
// ]
// }
// 数据转化
var data=JSON.parse(data);
// console.log(data)
// { success: '1',
// data: [ { username: 'wj', pasword: '123456' } ] }
var message=data.data;
for(var i=0;i<message.length;i++){
if (message[i].username==username&&message[i].password==password){
// 有此账户,可直接登录
filePath='./html/login.html';
break;
}else{
// 没有此账户,需要注册
filePath='./html/reg.html'
}
}

fs.exists(filePath,function(exists){
if (exists){
fs.readFile(filePath,function(err,data){
if (err){return}
res.end(data);
})
}else{
send404(res)
}
})


})
}
// POST传输数据
else if(req.method=='POST'){
var postData='';
filePath='./html/index.html';
req.on('data',function(chunk){
postData+=chunk;
// console.log(postData)
})
req.on('end',function(){
var data=querystring.parse(postData);
var obj={};
obj.username=data.username;
obj.password=data.password;
fs.readFile('./tsconfig.json','utf-8',function(err,data){
if (err){
return;
}
var data=JSON.parse(data);
data.data.push(obj)
fs.writeFile('./tsconfig.json',JSON.stringify(data),function(){
})
})
})

fs.exists(filePath,function(exists){
if (exists){
fs.readFile(filePath,function(err,data){
if (err){return}
res.end(data);
})
}else{
send404(res)
}
})
}
}
//显示的页面
else{
filePath='.'+req.url;
// console.log(req.url);
// console.log(filePath);
fs.exists(filePath,function(exists){
if (exists){
fs.readFile(filePath,function(err,data){
if (err){return}
res.end(data);
})
}else{
send404(res)
}
})

}
}

//整过过程都是异步的,所以判断文件的函数需要写在内部
function send404(res){
fs.readFile('./html/404.html',function(err,data){
if (err){return}
res.end(data)
})
}

转载于:https://www.cnblogs.com/Weijiaoydc/p/6051936.html

以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值