nodejs学习笔记三(用户注册登录)

Jason齐齐      2022-02-11     718

关键词:

1.定接口
     /user 接口
              输入    act=reg&user=aaa&pass=123456
              输出     {"ok":false, "msg":"原因"}
     
              输入     act=login&user=aaa&pass=123456
              输出     {"ok": true, "msg":"原因"}
 
2、server.js
     
解析数据
读取文件
 
访问的情况 --- 区分接口和文件
     1.对文件的访问
 
     2.对接口的访问
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>node登录注册</title>
    <script src="jquery.js"></script>
</head>
<body>
    <div>
        账号:<input type="text" name="name" id="user">
    </div>
    <div>
        密码:<input type="password" name="pass" id="password">
    </div>
    <input type="button" value="注册" id="reg">
    <input type="button" value="登录" id="login">
</body>
<script>
    $(#reg).click(function() {
        console.log($(#user).val(), $(#password).val())
        $.ajax({
            url: /user,
            data: {act: reg, user: $(#user).val(), pass: $(#password).val()},
            type: get,
            success(res) {
                let data = eval((+ res +));
                if(data.ok) {
                    alert(注册成功);
                }else {
                    alert(注册成功 + data.msg);
                }
            },
            error() {
                alert(通信错误);
            }
        })
    });

    $(#login).click(function() {
        $.ajax({
            url: user,
            data: {act: login, user: $(#user).val(), pass: $(#password).val()},
            type: get,
            success(res) {
                let data = eval((+ res +));
                if(data.ok) {
                    alert(登录成功);
                }else {
                    alert(登录失败 + data.msg);
                }
            },
            error() {
                alert(通信错误);
            }
        });
    });
</script>
</html>
const http = require(http);
const fs = require(fs);
const querystring = require(querystring);
const urlLib = require(url);

// {"jason": "123456", "liming": "000000", "xiaokui": "654321"}
let users = {};

let server = http.createServer( (req, res) => {
    // 解析数据
    let str = ‘‘;
    req.on(data, (data) => {
        str += data;
    });
    req.on(end, () => {
        let urlObj = urlLib.parse(req.url, true);

        const url = urlObj.pathname;
        const GET = urlObj.query;
        const POST = querystring.parse(str);

        // 区分-接口和文件
        if(url == /user) {     // 接口 --处理接口
            switch(GET.act) {
                // 注册
                case reg:
                    // 检查是否已经注册
                    if(users[GET.user]) {
                        res.write({"ok": false, "msg": "此用户名已经存在"});
                    }else {
                        // 插入到 users
                        users[GET.user] = GET.pass;
                        res.write({"ok": true, "msg": "注册成功"});
                    }
                    break;
                // 登录
                case login:
                    // 检查用户是否存在
                    if(users[GET.user] == null) {
                        res.write({"ok": false, "msg": "此用户不存在"});
                    // 检查密码是否正确
                    }else if(users[GET.user] != GET.pass) {
                        res.write({"ok": false, "msg": "密码错误"});
                    }else{
                        res.write({"ok": true, "msg": "登录成功"});
                    }
                    break;
                default:
                    res.write({"ok": false, "msg": "未知的act"});
            }
            res.end();
            console.log(GET, users);
        }else {     // 文件 -- 读取文件
            let file_name = ./www + url;
            fs.readFile(file_name, (err, data) => {
                if(err) {
                    res.write(404);
                }else {
                    res.write(data);
                }
                res.end();
            });
        }
    });
});

server.listen(8999);

 

第四周学习笔记

第四周学习笔记前周和本周主要学习登录和注册的内容,其中登录和注册分别有三种方法。登录可以通过查询标量、参数、参数方向三种命令来实现;注册有写入、异常、存储过程三种实现命令。结合上课内容,我们分别总结和... 查看详情

java学习笔记8.2.1jdbc实战-基于jdbc的gui用户登录(代码片段)

...象类(五)创建用户登录窗口类三、课后作业任务:完成用户注册窗口程序零、本讲学习目标了解Swing常用布局的使用方法能够灵活地应用布局实现登录界面基于JDBC实现GUI用户登录功能一、基于 查看详情

nodejs学习笔记——搭建开发框架express,实现web网站登录验证

    目录  开发环境  1、建立工程  2、目录结构  3、Express配置文件  4、Ejs模板  5、安装常用库及页面分离  6、路由  7、session  8、页面访问控制及提示  JS是脚本语言,脚本语言都需要一... 查看详情

系列文章--node.js学习笔记系列

Node.js学习笔记系列总索引Nodejs学习笔记(一)---简介及安装Node.js开发环境Nodejs学习笔记(二)---事件模块Nodejs学习笔记(三)---模块Nodejs学习笔记(四)---与MySQL交互(felixge/node-mysql)Nodejs学习笔记(五)---Express安装入门与模... 查看详情

深入浅出nodejs学习笔记——nodejs简介

基于事件驱动;非阻塞I/O四种I/O:同步(synchronous)IO和异步(asynchronous)IO,阻塞(blocking)IO和非阻塞(non-blocking)IO阻塞I/O要等数据到了才能继续,否则会阻塞用户进程非阻塞进程中用户请求后会立即得到结果(比如如果数据... 查看详情

java学习笔记7.2.1事件处理-swing事件处理机制

文章目录零、本讲学习目标一、事件处理机制(一)事件处理机制概述(二)Swing事件的三类对象1、事件源(EventSource)2、事件对象(Event)3、监听器(Listener)(三)事件处理流程(四)事件处理步骤1、创建事件源2、自定义... 查看详情

nodejs+express+mongodb简单个人博客系统study笔记

...博客系统iBlog是在学习NodeJs时候一个练手项目Demo系统支持用户注册/登录,内容文章查看,评论,后台管理(定制显示的分类版块,进行文章内容添加)超级管理员还可进行用户管理等目前只是做了一个比较粗糙的版本,跑通主... 查看详情

nodejs学习笔记(十五)---node.js+koa2构建网站简单示例

目录前言搭建项目及其它准备工作创建数据库创建Koa2项目安装项目其它需要包清除冗余文件并重新规划项目目录配置文件规划示例路由,并新建相关文件实现数据访问和业务逻辑相关方法编写mysql-helper.js编写数据访问方法规划... 查看详情

第一天学习笔记

1foriinrange(3):2name=input("请输入你的名字:")3namepass=input("请输入你的密码:")4if(name=="chenhao"andnamepass=="123123"):5print("输入正确!")6break7ifi==2:8print("输入超过三次! ")9break用户名登录  查看详情

php学习笔记:使用session来存储用户的登录信息

session可以用来存储多种类型的数据,因此具有很多的用途,常用来存储用户的登录信息,购物车数据,或者一些临时使用的暂存数据等。用户在登录成功以后,通常可以将用户的信息存储在session中,一般的会单独的将一些重要... 查看详情

cas学习笔记——server登录后用户信息的返回

一旦CASSERVER验证成功后,我们就会跳转到客户端中去。跳转到客户端去后,大家想一想,客户端总要获取用户信息吧,不然客户端是怎么知道登录的是哪个用户。那么客户端要怎么获取用户信息呢?其实验证成功,跳转客户端这... 查看详情

wpf学习笔记之点登录按钮时判断用户名密码进行登录:动画系列之

......承接动画系列之(一)的代码:再添加登录按钮代码进行登录,验证用户名和密码在数据库是否正确。直接上代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Windows;usingSystem.Windows.Controls;usingSystem.Wi... 查看详情

2023爬虫学习笔记--获取cookies并访问个人书架

一、访问目标网站浏览器=webdriver.Chrome(r'./chromedriver')目标网址='https://www.XXXcom'浏览器.get(目标网址)二、点击登录按钮,弹出登录框登录框=浏览器.find_element("xpath",'//*[@id="header_login_user"... 查看详情

django笔记三十二之session登录验证操作(代码片段)

本文首发于公众号:Hunter后端原文链接:Django笔记三十二之session登录验证操作这一篇笔记将介绍session相关的内容,包括如何在系统中使用session,以及利用session实现登录认证的功能。这篇笔记将分为以下几个内容:session的使用... 查看详情

fabric1.0学习笔记

一、系统架构fabric系统架构由应用程序层和底层区块链层构成。fabric为应用程序提供了grpc接口,针对不同语言封装了不同的sdk(go、nodejs、Java)应用程序与底层交互的媒介有4个身份、账本、交易和智能合约1.身份服... 查看详情

filter案例用户自动登录学习笔记(代码片段)

写Filter一定要知道该Filter过滤哪个或哪些资源,不是所有的Filter都过滤/*的资源。logn.jsp<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><metahttp-equiv="content-type"content="text/html;char 查看详情

NodeJS,在路由中获取登录用户的用户名

...nroute【发布时间】:2018-12-0401:21:57【问题描述】:我正在学习NodeJS,并按照一些视频教程来制作东西,以了解NodeJS和Express。由于几乎没有解释,它更多地变成了复制,所以尝试用我学到的东西制作我自己的东西等等。使用Passport... 查看详情

《opencv3编程入门》学习笔记三:highgui图形用户界面

...入、显示与输出3.为程序界面添加滑动条4.鼠标操作二:学习笔记1.使用OpenCV首先要学会使用它的图形界面,此章节介绍了OpenCV的一些HighGUI使用方法,并不涉及什么理论部分。关于HighGUI大家可参考官网HighGUI模块http://docs. 查看详情