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')

})

相关推荐
happymade3 分钟前
7000 台网络设备批量纳管 & 自动拓扑生成实战——MSRM3 完整操作流程与关键要点复盘
运维·服务器·网络·zabbix·grafana·msrm3
郝学胜-神的一滴5 分钟前
C++11 工程级应用 08:Lambda表达式与Tuple元组
开发语言·jvm·c++·python·程序人生·开源
吴声子夜歌15 分钟前
ApacheCommons——commons-lang3(Java 基础语言增强)(二)
java·开发语言·apache
传奇开心果编程17 分钟前
【Rust入门知识点学与练】第1课变量与打印
开发语言·学习·rust
烬羽29 分钟前
给 Agent 一个检索式记忆:把对话历史存进 Milvus,该记的都记得
javascript·数据库·agent
磐链科技38 分钟前
区块链开发入门实战:用 Hardhat 与 Ethers.js 搭建你的第一个 DApp
开发语言·javascript·区块链
新时代牛马41 分钟前
Linux 性能调优与追踪完整篇:ftrace、perf、eBPF从采样到落地验证
linux·运维·服务器
csdn2015_42 分钟前
java springboot项目,接收到的参数多个逗号
java·开发语言·spring boot
码艺-Alimjan1 小时前
维吾尔语数字转文本
java·javascript·python·算法·go
可乐鸡翅yeah_1 小时前
hls.js 多实例并发踩坑,多视频页面播放器内存与冲突问题解决
开发语言·前端·javascript·音视频·hls·m3u8·m3u8在线播放