![](/img/trans.png)
[英]Azure: Connect/Proxy Frontend (React) to Backend (Express/node.js)
[英]Use object from Node.js / Express backend in frontend JS
在这里编程的新手,我的问题可能相当愚蠢,但我花了很多时间寻找无济于事的解决方案。
我正在为一个简单的 web 应用编写原型。 后端使用 Node.js、Express 和 MongoDB。我使用 twig 将页面呈现给客户端。 我需要使用一些前端 JS。
这是我的路线:
router.get("/game/:id", objectsController.showObjectGame)
这是 controller:
exports.showObjectGame = (req, res) => {
objectModel.findById(req.params.id)
.exec()
.then(object => {
res.render("objectGame.html.twig", {object: object})
})
.catch(error => {
console.log(error);
})}
然后我能够呈现具有给定 object 属性的页面:
<h2>Title1</h2>
<div id="property1">{{object.property1}}</div>
<h2>Title2</h2>
<div id="property2">{{object.property2}}</div>
<h2>Title3</h2>
<div id="property3"><img src="/images/{{object.property3}}"></div>
在此页面上,我导入一个 JS 文件:
<script src="/javascript/objectGame.js"></script>
我的问题是我需要将 object 传递给 objectGame.js 中的一个变量,以便执行前端脚本。 对于我的一生,我不知道该怎么做。
希望这是有道理的。
提前致谢 !
以下是我认为可能有用的内容。 首先,我们必须重构objectGame.js
中的代码。 为此我们可以使用 IIFE 模式。
这是 objectGame.js 代码的样子
const objectGame = (function() {
//varible initializations
let somevar = null;
function _init(objectFromServer) {
somevar = objectFromServer;
//other initilization code
}
//other functions
return {
init: _init,
//other methods can be added
}
})();
导入 objectGame.js 后,上面定义的objectGame
function 将在全局空间可用,可以像这样使用。
<script src="/javascript/objectGame.js"></script>
<script>
objectGame.init({{someObjectFromServer}});
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.