-  
案例目标:实现GET的主要属性为req.method,并且生成随机数   
- 使用nodejs,实现一个Ajax的get请求方式
 - 将lib里的data.json文件请求获取出来
 - 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已经开启')
})
     
                
        
    
 
 |