js创建服务器,以及对接口的理解和创建

2024-01-03 14:52

本文主要是介绍js创建服务器,以及对接口的理解和创建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

// 创建服务
const app = http.createServer((req, res)=>{
    // 设置给前端返回信息的字符编码

    res.setHeader('content-type', 'text/html; charset=utf-8')    
    let address = req.url.split('?')[0]
    //首先创建一个数组,后面把它的数据放在JSON文件
    let user = [{id: 1, username: 'user1', password: '123'}]
    //拿到query,它是一个对象,里面有ID,usermane,password
    let objParams = url.parse(req.url, true).query
console.log(url.parse(req.url, true))
    // 使用switch进行匹配
    switch(address){
        // 页面的静态托管
        case '/index.html':
            fs.readFile('./index.html', 'utf-8', (err, data)=>{
                res.end(data)
            })
            break
        case '/login.html':
            fs.readFile('./login.html', 'utf-8', (err, data)=>{
                res.end(data)
             })   
             break
       
        case '/user/login':
            // res.end(JSON.stringify({code: 1, message: '登录成功'}))
            // 把传递过来的参数和db数据库里面的参数进行对比
            fs.readFile('./db/register.json', 'utf-8', (err, data)=>{
                let {username, password} = objParams
               //  console.log(username, password)
                let result = JSON.parse(data).find(item=>{
                    return item.username === username && item.password === password 
                })
                if(!result){
                    // 注意点:如果验证不通过,必须返回的是用户名或者密码错误,这样可以增加安全性
                    res.end(JSON.stringify({code: 0, message: '用户名或者密码错误'}))
                }else{
                    res.end(JSON.stringify({code: 1, message: '登录成功'}))
                    
                }
            })   
            break
        case '/shopping/list':
            fs.readFile('./db/goods.json', 'utf-8', (err, data)=>{
                res.end(data)
            })   
        case '/user/register':
            // fs.writeFile('./db/register.json', JSON.stringify(user), ()=>{
            //     res.end(JSON.stringify({code: 1, message: '注册成功'}))
            // })
            // 先读,再写
            fs.readFile('./db/register.json', 'utf-8', (err,data)=>{
                user.push(objParams)
        console.log(data)
                fs.writeFile('./db/register.json', JSON.stringify(user), ()=>{
            
                    res.end(JSON.stringify({code: 1, message: '注册成功'}))
                    
                })
            })
            break
        default:
            res.end('<h1>404,你的页面走丢了!</h1>') 
    }

})

// 监听端口号
app.listen(2307, ()=>{
    console.log('你的服务器已经开启了,快来玩啊!http://localhost:2307')
})

这篇关于js创建服务器,以及对接口的理解和创建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/566064

相关文章

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn