Как получить доступ к локальному файлу JavaScript из файла HTML функций облака? - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь просто получить доступ к файлу JavaScript из файла HTML с помощью атрибута script src, но мне не удалось это сделать.Оба файла находятся в моей папке функций.

В моей папке функций есть следующий файл Index.js Cloud Function:

const functions = require('firebase-functions');
const db = require('./admin');
var viewerApp = require('./viewerApp');

exports.view = functions.https.onRequest(viewerApp);

файл viewApp.js выглядит следующим образом:

const express = require("express");
const fs = require('fs');
const viewerApp = express();

module.exports = 
  viewerApp.get('/:collection_name/:id', (req, res) => 
    {
      var viewerHTML = fs.readFileSync('./viewerApp.html').toString();
      var id = req.params.id;
      var collection_name = req.params.collection_name;
      var rendered_HTML = eval(viewerHTML);
      res.send(rendered_HTML);
    }
  )

Вы заметите оператор eval (viewerHTML), который ссылается на отдельный html-файл с именем viewerApp.html, который в основном содержит литерал шаблона и выглядит так:

<!DOCTYPE html>
  <html lang="en">
    <body>
    ...
    </body>
  </html>

(еслиу кого-то есть лучшее предложение разделить HTML-код на отдельный файл, при этом можно использовать $ {variable}, что также будет полезно, поскольку eval () не идеален и, возможно, является частью того, что вызывает мою проблему)

Вышеописанное работает нормально, за исключением того, что я не могу понять, как ссылаться на файл JavaScript, расположенный в той же папке функций, что означает, что мне нужно будет включить весь мой JavaScript в файл viewerApp.html, что будет беспорядочно.

Я испробовал все эти возможности в файле viewerApp.html (чтобы попытаться сослаться на файл JavaScript с именем test.js):

<script src="./test.js"></script>
<script src="/test.js"></script>
<script src="test.js"></script>
<script src=test.js></script>

Все вышеперечисленное приводит к следующей ошибке в консоли:

Uncaught SyntaxError: Unexpected token <       test.js:2

(я получаю ту же ошибку, если пытаюсь сослаться на имя файла, которого не существует, поэтому я подозреваю, что проблема впуть к файлу или ограничение возможности доступа к локальной файловой системе)

Я не знаю, что делать с ошибкой, связанной с символом <, поскольку содержимое test.js просто: </p>

console.log("logging happened");

Любая помощь будет очень признательна.Спасибо !!

1 Ответ

0 голосов
/ 06 марта 2019

В конце концов, проблема заключалась в том, что я не инициализировал и не настроил хостинг Firebase, что, по-видимому, и позволяет html / js / css и другим статическим файлам быть доступными в HTML, возвращенном из облачной функции.Как только я сделал это и настроил общую папку, я смог обратиться к файлу test.js, поместив его в общую папку.Это добавление добавляется в раздел перезаписи файла firebase.json, и все готово.После этого видео очень помогло и содержит все необходимые шаги.

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