<address id="ttjl9"></address>

      <noframes id="ttjl9"><address id="ttjl9"><nobr id="ttjl9"></nobr></address>
      <form id="ttjl9"></form>
        <em id="ttjl9"><span id="ttjl9"></span></em>
        <address id="ttjl9"></address>

          <noframes id="ttjl9"><form id="ttjl9"></form>

          node.js案例,寫一個簡單的get請求,請求有50%的概率,要求數據在一個json文件中

          2021-9-15    前端達人

          • 案例目標:實現GET的主要屬性為req.method,并且生成隨機數

          1. 使用nodejs,實現一個Ajax的get請求方式
          2. 將lib里的data.json文件請求獲取出來
          3. data里面的數據為
            
                                    
            1. {
            2. "success":[
            3. {
            4. "data": "你贏了",
            5. "message":"請求成功",
            6. "code": "200"
            7. }
            8. ],
            9. "fail":[
            10. {
            11. "data": "你輸了",
            12. "message":"請求失敗",
            13. "code": "200"
            14. }
            15. ]
            16. }
          •  案例準備

          •  案例代碼

            
                                    
            1. // 1.定義核心模塊 http fs path
            2. const http = require('http')
            3. const fs = require('fs')
            4. const path = require('path')
            5. // 2.創建服務
            6. const server = http.createServer((req, res) => {
            7. // 2.1 如果url地址為/getList 執行代碼
            8. // -req.method 為請求類型
            9. // 生成隨機數,大于0.5為0,小于為1
            10. let render = Math.random() > 0.5 ? 0 : 1
            11. // console.log(render)
            12. // 2.2 拼接字符串,為讀取數據傳參
            13. // -__dirname為獲取的目錄地址
            14. // -lib為存放數據的名字,data.json為讀取的文件
            15. const filepath = path.join(__dirname, 'lib', 'data.json')
            16. // -console.log('拼接的地址', filepath)
            17. if (render === 0 && req.url === '/getList' && req.method === 'GET') {
            18. // 2.3 讀取data文件
            19. fs.readFile(filepath, 'utf8', (err, data) => {
            20. // - 打印錯誤信息
            21. if (err) {
            22. console.log('錯誤日志', err)
            23. return
            24. }
            25. // 讀取的為json數據,設置請求頭,如果不設置,則打印亂碼信息
            26. res.setHeader('content-type', 'application/json;charset=utf8')
            27. // - 返回數據
            28. let jsonArr = JSON.parse(data)['success']
            29. let jsonStr = JSON.stringify(jsonArr)
            30. res.end(jsonStr)
            31. })
            32. } else if (render === 1 && req.url === '/getList' && req.method === 'GET') {
            33. fs.readFile(filepath, 'utf8', (err, data) => {
            34. // - 打印錯誤信息
            35. if (err) {
            36. console.log('錯誤日志', err)
            37. return
            38. }
            39. // 讀取的為json數據,設置請求頭,如果不設置,則打印亂碼信息
            40. res.setHeader('content-type', 'application/json;charset=utf8')
            41. // - 返回數據
            42. let jsonArr = JSON.parse(data)['fail']
            43. let jsonStr = JSON.stringify(jsonArr)
            44. res.end(jsonStr)
            45. })
            46. }
            47. })
            48. // 3.啟動服務
            49. // 8111為端口號,默認8000,盡量使用8開頭,如果使用其他,咋不會正常運行,會報錯
            50. server.listen(8111, () => {
            51. // 服務提示信息,運行代碼后的提示
            52. console.log('端口1111已經開啟')
            53. })











          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.

          轉自:csdn
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.syprn.cn

          存檔

          亚洲va欧美va天堂v国产综合