Как получить данные от локального сервера?

ДД, помогите помочь как работает связь клиент сервер, есть кусочек кода сервера

app.get("/", (req, res) => {
  res.json({ name: "Nameless", status: true, id: 1 });
});
app.get("/users", (req, res) => {
  res.send("PAGES");
});
app.listen(port, (err) => {
  if (err) {
    return console.log(err);
  }
  console.log(`start on port: ${port}`);
});

и запрос к нему

async function getData() {
  let res = await fetch("http://localhost:3000", {
    mode: "no-cors",
  });
  let data = await res.json();
  console.log(data);
}

но никаких признаков, помогите пож-та понять как правильно делать запросы , где я ошибся?


Ответы (1 шт):

Автор решения: nörbörnën

Сервер:

const express = require('express')
const cors = require('cors')

const app = express();
app.use(cors());
app.options('*', cors());

app.get('/', (req, res) => {
    res.json({ name: "Nameless", status: true, id: 1 });
});

const port = process.env.PORT|| 3000;
const host = 'localhost';
app.listen(port, host, () => {
    console.log(`start on port: ${port}`);
});

Клиент:

<!doctype html>
<html lang="ru">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Hello, world!</title>
    <script type="text/javascript">
      async function getData() {
        try {
          let res = await fetch("http://localhost:3000", {
            mode: 'cors'
          });

          if (!res.ok) {
            console.log(res);
            throw new Error( res.statusText || res.status );
          }

          let data = await res.json();
          console.log(data);
        } catch (err) {
          console.error(err);
          alert('Произошла ошибка...');
        }
      }
    </script>
  </head>
  <body>
    <h1>Hello</h1>
    <div>
      <button onclick="getData()">GET DATA BUTTON</button>
    </div>
  </body>
</html>
→ Ссылка