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

})

相关推荐
code bean4 分钟前
【C#基础】函数传参大总结
服务器·开发语言·c#
shelby_loo5 分钟前
通过 Docker 部署 WordPress 服务器
服务器·docker·容器
Hqst_Kevin12 分钟前
Hqst 品牌 H81801D 千兆 DIP 网络变压器在光猫收发器机顶盒中的应用
运维·服务器·网络·5g·网络安全·信息与通信·信号处理
阳光阿盖尔13 分钟前
EasyExcel的基本使用——Java导入Excel数据
java·开发语言·excel
蔚一16 分钟前
Java设计模式—面向对象设计原则(三) -----> 依赖倒转原则DIP(完整详解,附有代码+案例)
java·开发语言·设计模式·intellij-idea·依赖倒置原则
前端-文龙刚16 分钟前
小程序给对象赋值(双向绑定)方法之一
服务器·小程序·apache
liang899921 分钟前
SpringSecurity原理解析(七):权限校验流程
java·开发语言
mez_Blog21 分钟前
个人小结(2.0)
前端·javascript·vue.js·学习·typescript
LQS202021 分钟前
基于Python实现一个浪漫烟花秀
开发语言·python
QXH20000023 分钟前
数据结构—单链表
c语言·开发语言·数据结构