当前位置:首页 » 《资源分享》 » 正文

node.js案例,写一个简单的get请求,请求有50%的概率,要求数据在一个json文件中_菜鸟进化史

29 人参与  2021年10月30日 10:03  分类 : 《资源分享》  评论

点击全文阅读


  • 案例目标:实现GET的主要属性为req.method,并且生成随机数

  1. 使用nodejs,实现一个Ajax的get请求方式
  2. 将lib里的data.json文件请求获取出来
  3. data里面的数据为
    {
        "success":[
            {
                "data": "你赢了",
                "message":"请求成功",
                "code": "200"
            }
        ],
        "fail":[
            {
                "data": "你输了",
                "message":"请求失败",
                "code": "200"
            }
        ]
    }
  •  案例准备

  •  案例代码

    // 1.定义核心模块 http fs path
    const http = require('http')
    const fs = require('fs')
    const path = require('path')
    // 2.创建服务
    const server = http.createServer((req, res) => {
        // 2.1 如果url地址为/getList 执行代码
        // -req.method 为请求类型
        // 生成随机数,大于0.5为0,小于为1
        let render = Math.random() > 0.5 ? 0 : 1
        // console.log(render)
    
        // 2.2 拼接字符串,为读取数据传参
        // -__dirname为获取的目录地址
        // -lib为存放数据的名字,data.json为读取的文件
        const filepath = path.join(__dirname, 'lib', 'data.json')
        // -console.log('拼接的地址', filepath)
        if (render === 0 && req.url === '/getList' && req.method === 'GET') {
            // 2.3 读取data文件
            fs.readFile(filepath, 'utf8', (err, data) => {
                // - 打印错误信息
                if (err) {
                    console.log('错误日志', err)
                    return
                }
                // 读取的为json数据,设置请求头,如果不设置,则打印乱码信息
                res.setHeader('content-type', 'application/json;charset=utf8')
                // - 返回数据
                let jsonArr = JSON.parse(data)['success']
                let jsonStr = JSON.stringify(jsonArr)
                res.end(jsonStr)
            })
        } else if (render === 1 && req.url === '/getList' && req.method === 'GET') {
            fs.readFile(filepath, 'utf8', (err, data) => {
                // - 打印错误信息
                if (err) {
                    console.log('错误日志', err)
                    return
                }
                // 读取的为json数据,设置请求头,如果不设置,则打印乱码信息
                res.setHeader('content-type', 'application/json;charset=utf8')
                // - 返回数据
                let jsonArr = JSON.parse(data)['fail']
                let jsonStr = JSON.stringify(jsonArr)
                res.end(jsonStr)
            })
        }
    })
    // 3.启动服务
    // 8111为端口号,默认8000,尽量使用8开头,如果使用其他,咋不会正常运行,会报错
    server.listen(8111, () => {
        // 服务提示信息,运行代码后的提示
        console.log('端口1111已经开启')
    })
    


点击全文阅读


本文链接:http://zhangshiyu.com/post/30260.html

请求  数据  读取  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • [糙汉嘴软心硬,娇妻日日晚起]小说精彩节选免费试读_「黎夏顾卫城」主线最终章倒计时
  • 我的亲妹妹我当做畜生,只有儿子来救我反转剧情试读片段_[***小宝李小翠]精彩章节免费试读
  • 往梦难复温,沈淮霆宋思予在线_往梦难复温,沈淮霆宋思予在线
  • 爱意清浅随风离(简凝夕陆靳燃),爱意清浅随风离
  • 「冲喜而已,侯爷别太爱」小说免费在线阅读_侯府侯爷乐瑶主线最终章倒计时
  • 好看的往梦难复温沈淮霆宋思予_往梦难复温沈淮霆宋思予
  • 天才京剧花旦被废嗓后成为芭蕾舞王+后续+结局(秦意宋笙)全书秦意宋笙结局_秦意宋笙+结局列表_笔趣阁(天才京剧花旦被废嗓后成为芭蕾舞王+后续+结局)
  • (番外)+(全书)往梦难复温(沈淮霆宋思予+番外+全书)_(往梦难复温+番外+全书)免费_笔趣阁(沈淮霆宋思予)
  • 江晚烟陆聿我终于失去了你结局+番外(江晚烟陆聿)列表_江晚烟陆聿我终于失去了你结局+番外(江晚烟陆聿)结局篇+番外在线
  • 池雾陆砚寒结局+番外(陆砚寒池雾)列表_池雾陆砚寒结局+番外(陆砚寒池雾)池雾陆砚寒结局+番外在线
  • 沈静怡傅励行+后续+结局(傅励行沈静怡)列表_沈静怡傅励行+后续+结局(傅励行沈静怡)沈静怡傅励行+后续+结局在线
  • 非典时,我被妻子的白月光误诊遗弃在病房节选角色羁绊特辑‌_田越苏雅白月光角色专属支线试读入口

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1