У меня проблема со ссылкой на объект, который находится в моем файле app.js. Я работаю на моем сервере с помощью экспресс, и для двигателя представления я использую EJS.
Объект создается в файле app.js, а затем используется в моем файле PowerList.ejs (индексный файл). Но при попытке его использовать он помечается как не экспортируемый.
объект и функция в app.js:
var number = {count: 0};
var profile = {name: 'My name', age: 21, job: 'My profession', hobbies: ['hiking', 'running', 'coding']};
app.get('/', function (req, res) {
res.render('PowerList.ejs',{data: profile, number: number});
});
объектов, используемых в PowerList.ejs:
<section id="history" style="background-color: red; margin: auto; height: 400px; width: 650px; text-align: center; display: none">
<button id="button">click me</button>
<p>You have clicked me <%= number.count%> times</p>
</section>
Что меня смущает, так это то, что, как вы можете видеть из фрагмента, есть еще один объект с именем profile, который аналогичным образом используется в моем файле PowerList.ejs и не вызывает никаких проблем.
использование объекта профиля:
<section id="productivity" style="background-color: bisque; margin: auto; height: 400px; width: 650px; text-align: center; display: none">
<p><strong>Profile name: </strong> <%= profile.name%></p>
<p><strong>Age: </strong><%= profile.age%></p>
<p><strong>Job: </strong><%= profile.job%></p>
<ul><strong>hobbies:</strong>
<% profile.hobbies.forEach(function (value) { %>
<li><%= value %></li>
<%});%>
</ul>
</section>
Я также использую числовой объект в javascript-файле, где он увеличивается с помощью нажатия кнопки. Здесь он также помечен как не экспортируемый, плюс я получаю сообщение об ошибке при попытке увеличить его, нажав кнопку.
файл JavaScript:
document.getElementById('button').addEventListener('click', loadNumber);
function loadNumber() {
var xhttp = new XMLHttpRequest();
xhttp.open('GET', '/', true);
xhttp.onload = function () {
if(this.status === 200){
number.count++;
}
};
xhttp.send();
}
журнал ошибок:
Uncaught ReferenceError: number is not defined
at XMLHttpRequest.xhttp.onload (addDelete.js:67)