【发布时间】:2019-02-28 22:48:47
【问题描述】:
我正在尝试使用 script src 属性从 HTML 文件中简单地访问 JavaScript 文件,但我一直无法这样做。这两个文件都在我的函数文件夹中。
我的函数文件夹中有以下 Cloud Function index.js 文件:
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) 语句,它引用了一个名为 viewerApp.html 的单独 html 文件,该文件基本上包含一个模板文字,如下所示:
<!DOCTYPE html>
<html lang="en">
<body>
...
</body>
</html>
(如果有人有更好的建议将 HTML 分离到一个单独的文件中,同时能够使用 ${variables} 也会有所帮助,因为 eval() 并不理想,也许是导致我的原因的一部分问题)
以上工作正常,除了我不知道如何引用位于同一函数文件夹中的 JavaScript 文件,这意味着我需要将我所有的 JavaScript 包含在 viewerApp.html 文件中,这将是一团糟。
我已经在 viewerApp.html 文件中尝试了所有这些可能性(尝试引用名为 test.js 的 JavaScript 文件):
<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
(如果我尝试引用不存在的文件名,我会遇到同样的错误,因此我怀疑文件路径存在问题或访问本地文件系统的能力受到限制)
我不知道如何处理与
console.log("logging happened");
任何帮助将不胜感激。谢谢!!
【问题讨论】:
-
您使用 google-cloud-firestore 对此进行了标记,并在标题中提到了 Firestore,但我并没有真正看到您的问题描述中涉及到它。
-
好点。我想我认为 Cloud Functions 与 Cloud Firestore 更直接相关,但经过审查,我发现 Cloud Functions 是“Google Cloud Platform product" on its own”。
-
是的,Cloud Functions 和 Cloud Firestore 交叉的唯一方法是编写 Firestore 触发器。这不是这里发生的事情。
标签: javascript node.js express google-cloud-functions