Я думаю, что вы смешиваете контексты.<script src="arrayFile.js"></script>
будет работать на стороне браузера.Пока <%= array %>
работает на стороне сервера.Так что это должно быть примерно так, просто чтобы дать вам представление:
// assuming that your array is exported as default
var array = require('./arrayFile.js');
app.get('/page', (req, res) => {
// make array available to EJS context
res.render('page_ejs', {array});
});
Но это, вероятно, сгенерирует один большой HTML
с впечатанным массивом.Это не то, что вы, вероятно, хотите, потому что тогда вам на самом деле не нужно <script src="arrayFile.js"></script>
в вашем EJS.
Если вы хотите, чтобы файлы были отправлены в браузер, ваши HTML
и arrayFile.js
,тогда вам нужно будет правильно экспортировать массив в arrayFile.js
, чтобы вы могли написать что-то вроде:
// this will be fetched by browser
<script src="arrayFile.js"></script>
// and then executed by browser
<script>
console.log(yourArray);
</script>
Тогда вам не нужно <%= array %>
в вашем EJS.
Конечновы можете смешивать оба пути, делая массив доступным как для EJS, так и для браузера.