Отвечая массив на другой js файл, как? - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь ответить массивом на другой файл js, и у меня есть к нему доступ.

Я попытался res.render(), но выдает ошибку, что у меня нет модуля и я не хочу устанавливать какой-либо модуль.

Я также попробовал res.json(), но это только показало массив в браузере, и я не мог ничего с этим поделать.

Импорт и экспорт не работал.

Для получения указанного c URL для этого массива fetch(/anime) тоже не сработало, потому что когда я пытаюсь запустить свой сервер, URL ("/") пытается получить массив, который я не отправил еще. Это потому, что я отправляю файл html, который связан с другим файлом js.

Я надеюсь, что у меня все ясно.

Сервер. js

app.get("/", (req, res) => {
    app.use(express.static("./animeCatcher"));
    res.sendFile("index.html");
})

app.get("/anime", (req, res) => {
   let animeNames = ["One Piece", "Fairy Tail", "Attack on Titan"];
   res.json(animeNames);
        });

index. html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src= "animeScrape.js"></script>
</head>
<body>

</body>
</html>

animeScraper. js

fetch('/anime')
   .then(res => res.json())
   .then(animeNames => console.log(animeNames));

Спасибо за потраченное время.

1 Ответ

0 голосов
/ 16 апреля 2020

Пожалуйста, используйте res.send(animeNames) или res.status(200).send(animeNames)

Также, пожалуйста, удалите express .stati c из маршрута и сделайте его глобальным промежуточным ПО:


app.use(express.static("./animeCatcher"));

app.get('/', (req, res) => {
    res.sendFile(`${__dirname}/index.html`);
});

app.get('/anime', (req, res) => {
    let animeNames = ["One Piece", "Fairy Tail", "Attack on Titan"];
    res.json(animeNames);
});

Ваш веб-интерфейс Сценарий верен, но вы можете проверить на вкладке сети, отображается ли ваш вызов API как тип выборки: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...