将数据从 Express 迭代到 EJS
Iterate data from Express to EJS
我真的很困惑:
<script>
const i = 0
const data = "<%= dataMedico[0].user %>" // Fine
const data2 = `<%= dataMedico[${i}].user %>` // Error
</script>
假设第二个使用常量“i”来return我的值“user”,但它只是 return 给我这个错误:
SyntaxError: Unexpected token '{' in myRoot\views\index.ejs while compiling 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 && pass1 === passwordMedicos) {
button.href = "principal"
} else {
alert("ERROR.");
}
}
}
你能推荐我另一种更简单的方法吗?
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 && pass1 === passwordMedicos) {
button.href = "principal"
} else {
alert("ERROR.");
}
}
}
</script>
请注意 verificator()
函数似乎不完整。您 运行 循环了 10 次,但是您的 else
将 alert()
可能多达 10 次。我想你并不是真的想要那样。
我真的很困惑:
<script>
const i = 0
const data = "<%= dataMedico[0].user %>" // Fine
const data2 = `<%= dataMedico[${i}].user %>` // Error
</script>
假设第二个使用常量“i”来return我的值“user”,但它只是 return 给我这个错误:
SyntaxError: Unexpected token '{' in myRoot\views\index.ejs while compiling 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 && pass1 === passwordMedicos) {
button.href = "principal"
} else {
alert("ERROR.");
}
}
}
你能推荐我另一种更简单的方法吗?
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 && pass1 === passwordMedicos) {
button.href = "principal"
} else {
alert("ERROR.");
}
}
}
</script>
请注意 verificator()
函数似乎不完整。您 运行 循环了 10 次,但是您的 else
将 alert()
可能多达 10 次。我想你并不是真的想要那样。