首页 > 其他分享 >js练习--用户管理API

js练习--用户管理API

时间:2024-08-28 10:55:27浏览次数:4  
标签:const -- res js json API user Type

需要node.js运行环境,创建2个文件:user.js,server.js

user.js:

let users = {};
module.exports = users;

server.js:

const http = require('http');

// 导入user模块
let users = require('./user');

// 创建HTTP服务器
const server = http.createServer((req, res) => {
    // 设置响应头部
    res.setHeader('Content-Type', 'application/json');

    // 解析请求URL和Method
    const url = req.url;
    const method = req.method;

    // 处理POST请求(注册用户)
    if (url === '/register' && method === 'POST') {
        let body = '';
        req.on('data', chunk => {
            body += chunk.toString(); // 转换Buffer到字符串
        });
        req.on('end', () => {
            try {
                const { username, password } = JSON.parse(body);
                if (users[username]) {
                    res.writeHead(400, { 'Content-Type': 'application/json' });
                    res.end(JSON.stringify({ message: 'Username already exits' }));
                } else {
                    users[username] = { username, password };
                    res.writeHead(201, { 'Content-Type': 'application/json' });
                    res.end(JSON.stringify({ message: 'User registered successfully' }));
                }
            } catch (error) {
                res.writeHead(400, { 'Content-Type': 'application/json' });
                res.end(JSON.stringify({ message: 'Invalid json' }));
            }
        });
    }
    // 处理GET请求(查询用户)
    else if (url.startsWith('/user/') && method === 'GET') {
        const username = url.split('/')[2];
        const user = users[username];
        if (!user) {
            res.writeHead(404, { 'Content-Type': 'application/json' });
            res.end(JSON.stringify({ message: 'User not found' }));
        } else {
            res.writeHead(200, { 'Content-Type': 'application/json' });
            res.end(JSON.stringify(user));
        }
    }
    // 其他请求
    else {
        res.writeHead(404, { 'Content-Type': 'application/json' });
        res.end(JSON.stringify({ message: 'Not Found' }));
    }
});

// 服务器监听3000端口
server.listen(3000, () => {
    console.log('Server is running on http://localhost:3000');
});

 

标签:const,--,res,js,json,API,user,Type
From: https://www.cnblogs.com/aaronhoo/p/18384155

相关文章

  • CAS5和CAS6自定义异常提示消息
    CAS5和CAS6自定义异常提示消息使用cas登录时,如果登录错误页面应该提示一下错误消息,cas自带的有一些,不适用的话就需要自定义自己的异常消息提示了。自定义异常提示消息自定义异常消息类例如:验证码异常消息类importjavax.security.auth.login.AccountExpiredException;......
  • 133.克隆图
    1.题目描述给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int)和其邻居的列表(list[Node])。classNode{publicintval;publicList<Node>neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同......
  • ZoneMinder视频监控系统SQL注入
    0x01漏洞描述:ZoneMinder(简称ZM)是一套基于Linux操作系统的摄像机的视像数据监控的应用软件(大家可以简单理解为网络摄像机)。ZoneMinder支持单一或多台视像镜头应用,包括摄取、分析、记录(包括移动侦测功能)、和监视来源。index.php接口处存在sql注入,未经身份验证的远程攻击者除......
  • H3C-IMC智能管理中心RCE漏洞复现
    0x01漏洞描述:autoDeploy接口中存在远程代码执行漏洞,未经身份攻击者可通过该漏洞在服务器端任意执行代码,写入后门,获取服务器权限,进而控制整个web服务器。该漏洞利用难度较低,建议受影响的用户尽快修复。0x02搜索语句:Fofa:(title="用户自助服务"&&body="/selfservice/java......
  • DSC远程归档存放在NFS盘
    目录1.节点1操作1.1下载并且配置NFS1.2节点2操作2.节点2操作2.1配置共享文件2.2节点1操作3.节点1的归档配置4.节点2的归档配置5.启动实例话不多说,直接开整!现在我们是节点1挂节点2,节点2挂节点1,俗称互挂!1.节点1操作这里我们先把节点1当服务端1.1下载并且配置NFS......
  • 基于PHP的文件上传
    文件上传是现代网络应用中不可或缺的功能,它允许用户将本地文件存储到服务器上,用于后续的处理、分发或备份。一、基于前端验证的文件上传文件上传漏洞中的前端验证漏洞是一个常见且危险的问题。这类漏洞的产生主要是因为前端验证机制可以通过多种方式被绕过,从而使得攻击者能......
  • 基于java的SpringBoot框架卫生健康系统
    博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、爬虫、web开发,已经做了六年的程序开发,开发过上千套大学生实战程序,可以定制、也可成品项目,博客中有上百套程序可供参考,欢迎共同交流学习。......
  • 3. JavaScript 变量声明
    var、let和const是JavaScript中用于声明变量的关键字,但它们在作用域、提升(hoisting)、以及是否可以重新赋值等方面存在一些重要的区别。1.作用域(Scope)var:具有函数作用域(functionscope),即如果在函数内部声明var变量,该变量在整个函数内都有效。如果在函数外部声明,则具......
  • Java研学-Shiro安全框架(五)
    七SpringBoot集成Shiro鉴权1Shiro鉴权三种方式  编程式通过写if/else授权代码块完成Subjectsubject=SecurityUtils.getSubject();if(subject.hasRole("hr")){ //有权限}else{ //无权限}  注解式通过在controller的方法上放置相应的注解完成(shiro......
  • 所以你被要求对AI内容进行“人性化处理”
    过去12个月里,“如何让AI内容更人性化”的搜索量增长了943%。越来越多的人试图“通过人为检查”,无论是为了让AI内容不那么糟糕,还是为了蒙混过AI内容检测工具。“使AI内容人性化”这一过程已成为那些渴望增长的公司的默认内容策略。我看到到处都是被压抑的作家,他们询问如何......