#node.js #express #fetch #geojson
Вопрос:
Я знаю, что это очень простой вопрос, но я не мог понять его прямо сейчас.
Я хочу запросить названия и местоположение некоторых национальных парков через их api. Итак, у меня есть это index.html
<!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" />
<title>Frontend</title>
</head>
<body>
<button id="btn">Get Parks</button>
<script src="index.js"></script>
</body>
</html>
Затем есть интерфейс javascript в index.js
btn = document.querySelector("#btn");
btn.onclick = async () => {
let url = "/api";
const response = await fetch(url);
console.log(response);
};
Который отправляет запрос get на сервер и /api
маршрут. Это обрабатывается в server.js
файле, который выглядит следующим образом:
import fetch from "node-fetch";
import express from "express";
const app = express();
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`Starting server at port ${port}`);
});
app.use(express.static("public"));
app.get("/api", async (req, res) => {
let resp = await fetch(
"https://www.nps.gov/lib/npmap.js/4.0.0/examples/data/national-parks.geojson"
);
let data = resp.json();
res.send(data);
});
Но то, что я получаю, — это не то, что я хочу. То, что я получаю в ответ, — это ответ, содержащий ссылку на фактические данные, которые мне нужны. Хотя я делаю resp.json()
это, кажется, не получаю GeoJSON.
Response { type: "basic", url: "http://localhost:3000/api", redirected: false, status: 200, ok: true, statusText: "OK", headers: Headers, body: ReadableStream, bodyUsed: false }
...
Когда я делаю то же самое в сценарии узла, я получаю фактический geojson…
import fetch from "node-fetch";
let res = await fetch(
"https://www.nps.gov/lib/npmap.js/4.0.0/examples/data/national-parks.geojson"
);
let response = await res.json();
console.log(response);
Так как же я могу передать geojson с сервера-узла на интерфейс? Извините, я знаю, что не вижу чего-то очень очевидного…