#javascript #node.js #json #express #ejs
Вопрос:
Я действительно в замешательстве из-за этого:
<script>
const i = 0
const data = "<%= dataMedico[0].user %>" // Fine
const data2 = `<%= dataMedico[${i}].user %>` // Error
</script>
Предполагается, что второй использует константу «i«, чтобы вернуть мне значение «пользователь«, но он возвращает мне только эту ошибку:
Синтаксическая ошибка: Неожиданный токен «{» в файле myRootviewsindex.ejs при компиляции ejs
Мне нужно повторить dataMedico, чтобы сравнить пользователей с данными такой формы:
function verificator() {
for(let i = 0; i < 10; i ) {
const userMedicos = `<% dataMedico[${i}].usuario %>`
const passwordMedicos = `<% dataMedico[${i}].contrasenia %>`
const text = document.getElementById("user").value
const pass1 = document.getElementById("password").value
if (text === userMedicos amp;amp; pass1 === passwordMedicos) {
button.href = "principal"
} else {
alert("ERROR.");
}
}
}
Вы рекомендуете мне другой способ сделать это проще?
Комментарии:
1. Строка шаблона Javascript вычисляется, когда ваш Javascript анализируется браузером, А НЕ когда страница отображается с помощью EJS.
Ответ №1:
Строка шаблона Javascript вычисляется, когда ваш Javascript анализируется браузером, А НЕ когда страница отображается с помощью EJS. Если конечная цель здесь состоит в том, чтобы заставить вашу verificator()
функцию работать в Javascript на вашей веб-странице, то вам нужно будет преобразовать все dataMedico
данные в переменную в Javascript страницы с помощью EJS.
Затем Javascript вашей страницы может ссылаться на эти данные, как на данные любой переменной Javascript.
Итак, вот как вы внедряете dataMedico
данные на свою страницу в качестве переменной Javascript.
<script>
const dataMedico = <%- JSON.stringify(dataMedico) %>;
</script>
Затем вы можете использовать это в своей verificator()
функции следующим образом:
<script>
function verificator() {
for(let i = 0; i < 10; i ) {
const userMedicos = dataMedico[i].usuario;
const passwordMedicos = dataMedico[i].contrasenia;
const text = document.getElementById("user").value
const pass1 = document.getElementById("password").value
if (text === userMedicos amp;amp; pass1 === passwordMedicos) {
button.href = "principal"
} else {
alert("ERROR.");
}
}
}
</script>
Пожалуйста, обратите внимание, что verificator()
функция, по-видимому, является неполной. Вы запускаете цикл 10 раз, но else
alert()
, возможно, у вас получится целых 10 раз. Я предполагаю, что на самом деле вы этого не хотите.