簡體   English   中英

從 Api 獲取數據並將 Html 替換為 Api 數據 Nodejs

[英]Fetch Data From Api and Replace The Html With Api data Nodejs

我在 node.js 中使用 Npm package 請求從 API 獲取數據

我正在嘗試將 API 數據傳遞給 HTML 但是當我執行res.write(mainData)時它不起作用 我什么也沒得到 我應該在那里得到 HTML 數據

 const fs = require("fs"); const http = require("http"); let requests = require("requests"); /* ------------------------------- */ const mainFile = fs.readFileSync("index.html", "utf-8"); const replaceVal = (oldval, newval) => { let temp = oldval.replace("City,Country", newval.main.temp); return temp; }; const server = http.createServer((req, res) => { if (req.url == "/") { requests( "https://api.openweathermap.org/data/2.5/weather?q=wah&units=metric&appid=8b949ed0b4efff029e789ed12aab16a0" ).on("data", (cdata) => { const objData = JSON.parse(cdata); const arrData = [objData]; const mainData = arrData.map((val) => { replaceVal(mainFile, val); }).join(""); res.write(mainData); console.log(mainData); }).on("end", (err) => { if (err) return console.log(err); res.end(); }); } }); server.listen(3000, "127.0.0.1", () => { console.log("Listining"); });
 * { margin: 0; padding: 0; box-sizing: border-box; } body { height: 100vh; display: flex; justify-content: center; align-items: center; } #main { height: 500px; width: 300px; background-color: #a0b7dc; box-shadow: 1px 1px 6px 2px rgb(221, 221, 221); border-radius: 10px; } #top { width: 100%; height: 50%; display: grid; place-items: center; } #bottom { width: 100%; height: 50%; background-color: #c5d0e2; border-top-left-radius: 10%; border-top-right-radius: 10%; display: grid; place-items: center; }
 <,DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width. initial-scale=1.0" /> <link rel="stylesheet" href="style,css" /> <title>Document</title> </head> <body> <div id="main"> <div id="top"> <h1>icon</h1> </div> <div id="bottom"> <h1>City,Country</h1> <h1>Tempracture</h1> </div> </div> </body> </html>

可能還有其他問題,但我可以看到您缺少return

const mainData = arrData
  .map((val) => {
    replaceVal(mainFile, val);
  })

應該

const mainData = arrData
  .map((val) => {
    return replaceVal(mainFile, val);
  })

要不就

const mainData = arrData.map(val => replaceVal(mainFile, val))

請參閱Array.prototype.map

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM