Я пытаюсь преобразовать приложение, которое не использует node.js, в формат узла.
Исходное приложение состояло только из файла code.js
и файла index.html
, который был похож на это:
<html>
<head>
...
<script type="text/javascript" src="code.js"></script>
</head>
<body onload="load()">
(...)
<div style="position:absolute; top:250px; left:20px">
<input type="button" onClick="init()" value="New game">
(...)
</body>
</html>
Чтобы преобразовать это в формат узла, я переименовал index.html
в views/index.ejs
и заменил функции js на кавычки ejs:
<html>
...
<body onload="<%= load %>()">
(...)
<div style="position:absolute; top:250px; left:20px">
<input type="button" onClick="<%=init %>()" value="New game">
(...)
</body>
</html>
Я также добавил следующее вконец моего файла code.js:
module.exports={
load:load,
init:init
}
И наконец, в моем файле главного узла app.js
есть следующий соответствующий фрагмент:
var exportedValues = require('./code.js');
app.get('/', (req,res) => {
res.render('index.ejs',exportedValues);
});
Это почти работает: когдаЯ проверяю консоль, кавычки ejs действительно заменяются определениями функций load
и init
, но поскольку эти определения, в свою очередь, используют другие функции, определенные в code.js
, браузер не знает, что делатьс ними.
Как правильно это сделать?