#javascript #node.js #express #ejs
Вопрос:
Я строю node.js приложение, и я хочу получить доступ к массиву с сервера, я обнаружил, что не могу получить доступ к массиву в теге сценария.
Я искал решения и нашел решение JSON.stringify
, но оно не работает и возвращает ошибку.
На стороне сервера с помощью express:
module.exports.index = async (req, res) => {
const coffepoints = await CoffePoint.find({});
res.render('coffepoints/index', { coffepoints })
}
Сторона клиента:
<script>
const coffepoints = <% - JSON.stringify(campgrounds) %>
</script>
Что я должен сделать, чтобы получить доступ к массиву в теге сценария?
Ответ №1:
То , что вы здесь делаете, на самом деле называется includes
, что для частичных в EJS.
<script> const coffepoints = <% - JSON.stringify(campgrounds) %></script>
^^^
Вы хотите отобразить или вывести переменную EJS. Итак, вы бы использовали <%=
тег.
<script> const coffepoints = <%= JSON.stringify(campgrounds) %></script>
Вы можете просмотреть документацию EJS здесь, которая включает все доступные теги в EJS.
Ответ №2:
Вы можете просто получить доступ к нему с <%= varName %>
помощью функции » Из экспресс
<script>
var myVal = <%= someVal %>
</script>
Комментарии:
1. Это работает только в том случае, если
someVal
это число или логическое значение. Здесь, похоже, это не так.