用node寫一個屬于自己的API接口。

需要掌握基礎(chǔ)的node知識和Ajax請求知識。

1.目錄結(jié)構(gòu)如下。

2.完整代碼展示及注釋:

data.json (模仿后臺數(shù)據(jù))

{
  "data": { 
    "returnCode": "SUCCESS", 
    "success": true,
    "banner": "雙十一大搶購!go!go!go!",
    "list": [
      {
        "title": "入秋穿搭指南",
        "imgage": "xxx.jpg"
      },
      {
        "title": "秋季護膚大作戰(zhàn)",
        "imgage": "xxx.jpg"
      },
      {
        "title": "流行套裝搶先一步",
        "imgage": "xxx.jpg"
      },
      {
        "title": "煥新時尚周",
        "imgage": "xxx.jpg"
      },
      {
        "title": "好物特賣",
        "imgage": "xxx.jpg"
      }
    ]
  }
}

server.js (搭建服務(wù)器)

const http = require('http');
const fs = require('fs');
const server = http.createServer((request, response) => {//創(chuàng)建一個服務(wù)器實例,傳入一個回調(diào)函數(shù)
  const url = request.url;
  if (url === '/') {//如果請求到的路徑是當(dāng)前路徑,則執(zhí)行這里面的內(nèi)容
    fs.readFile('./index.html', (err, data) => {//讀取我們當(dāng)前的index.html頁面狀態(tài)
      if (!err) {//如果沒有報錯的話,就執(zhí)行這里的代碼
        //設(shè)置響應(yīng)頭和200狀態(tài)碼(成功)
        response.writeHead(200, {"Content-Type":"text/html;charset=utf-8"})
        //1.statusCode:HTTP狀態(tài)碼,如200(請求成功)
        //2.設(shè)置服務(wù)器端返回數(shù)據(jù)的方式和類型,防止中文亂碼
        response.end(data);//此方法向服務(wù)器發(fā)出信號,表明已發(fā)送所有響應(yīng)頭和主體
      }else {
          throw err;//拋出錯誤
      }
    });
  }else if (url === '/data') {
      fs.readFile('./data.json', (err, data) => {
        if (!err) {
            response.writeHead(200, {"Content-Type":"application/json"})
            response.end(data)
        }else {
            throw err;
        }
      })
  }else {
      
  }
});
server.listen(8080);//監(jiān)聽端口
console.log(`server is running at http://127.0.0.1:8080`)

index.html (發(fā)送ajax,請求數(shù)據(jù))

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<!-- 發(fā)送ajax請求 -->
<button onclick="success()">發(fā)送請求</button>
<script>
  function success() {
    const http = new XMLHttpRequest();//創(chuàng)建一個XHR的實例對象
    http.onreadystatechange = () => {//綁定一個 readystatechange 事件,用于監(jiān)聽http.status和http.readyState的屬性變化
      if (http.status == 200 && http.readyState == 4) {//判斷狀態(tài):200是成功的狀態(tài)碼、readyState是響應(yīng)階段,有0-4共5個響應(yīng)階段,4代表的是已接收到全部的響應(yīng)
        const result = JSON.parse(http.responseText);//接收服務(wù)器端返回的文本信息并且通過JSON.parse()方法解析文本信息
        //為什么需要解析服務(wù)器端返回的文本信息,因為服務(wù)器端返回的文本信息是二進制的Buffer流
        console.log(result)
      }
    }
    http.open('GET', '/data');//創(chuàng)建一個get請求,攜帶參數(shù)數(shù)據(jù)
    http.send()//發(fā)送請求
  }
</script>
</body>
</html>

3.運行服務(wù)器。

4.效果展示。

附:對于ajax請求不是很了解的,可以看下這個:https://blog.csdn.net/l_ppp/article/details/108921610?utm_medium=distribute.pc_category.none-task-blog-hot-5.nonecase&depth_1-utm_source=distribute.pc_category.none-task-blog-hot-5.nonecase&request_id=
對于服務(wù)器搭建不是很了解的,可以看下這個:https://www.liaoxuefeng.com/wiki/1022910821149312/1023025830950720

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容