Задать вопрос
@atumbochka

Как работает fetch?

Заранее хочу сказать, что я полнейший ноль в серверной части js, но знаю стандартный js с циклами, функциями, объектами и не отрицаю, написанное мной - полная дичь.

Как работает fetch? Я, естественно, сперва посмотрел документацию и видео на ютубе, но ничего не понял, то есть он возвращает какие-то (вот именно, какие?) данные со страницы, куда я делаю запрос. Что он вообще может вернуть: просто текст со страницы или какие-то DOM-элементы? И почему-то все оборачивают ответ в JSON.
У меня есть файл-сервер:
const like = false

const http = require("http")

http.createServer((req, res) => {
    res.writeHead(200, {"Content-Type": "text/html"});
    res.end(`
        <h1>HELLO</h1>
    `)
}).listen(8080, () => console.log("Server is on..."))

В нем я создал like и хочу, чтобы эта константа как бы идентифицировалась на второй странице, то есть, чтобы я мог обратиться к ней или что-то с ней сделать во втором файле:
let likeStatus

document.addEventListener("DOMContentLoaded", async function() {
    let res = await fetch("http://localhost:8080/")
    let json = res.json()
    likeStatus = json.like
    alert(likeStatus)
})

Мне вообще выводит следующее: Uncaught ReferenceError: require is not defined
При чем я знаю о существовании модулей, но вот мне нужно именно через фетч и, насколько я понял, это можно сделать, но я понятия не имею как. Я писал свой вопрос в гугле и ничего не нашел.
  • Вопрос задан
  • 261 просмотр
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
const like = false

const http = require("http")

http.createServer((req, res) => {
    //Видимо сначала надо вернуть с сервера значение like.
    res.writeHead(200, {"Content-Type": "application/json"});
    res.end(`
        { "like": ${like} }
    `); // Не шарю в ноде, так что вот так накостылял
}).listen(8080, () => console.log("Server is on..."))

После этого код с фронтенда будет работать нормально.

Uncaught ReferenceError: require is not defined

А вы точно на ноде это запускаете, а не в браузере?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы