Javascript 无法使用.length属性在数组/函数上循环
我的代码是西班牙语,希望没问题。我尝试使用GET调用从MongoDB调用包含对象(信息)的数组以将其显示为表,我已经在controller.js和services.js文件中定义了函数和功能,但当我尝试使用db信息进行迭代时,它显示以下错误:Javascript 无法使用.length属性在数组/函数上循环,javascript,ajax,Javascript,Ajax,我的代码是西班牙语,希望没问题。我尝试使用GET调用从MongoDB调用包含对象(信息)的数组以将其显示为表,我已经在controller.js和services.js文件中定义了函数和功能,但当我尝试使用db信息进行迭代时,它显示以下错误: Uncaught TypeError:无法读取未定义的属性'length' 在mostrar_librerias(controlador_listar_librerias.js:7) 在controlador_listar_librerias.js:29
Uncaught TypeError:无法读取未定义的属性'length'
在mostrar_librerias(controlador_listar_librerias.js:7)
在controlador_listar_librerias.js:29
但我认为所有的定义都是正确的
这是我的控制器上的信息:
let librerias = listar_librerias();
const tabla = document.querySelector('#tbl_inmuebles tbody');
let mostrar_librerias = () => {
for (let i = 0; i < librerias.length; i++) {
let fila = tabla.insertRow();
fila.insertCell().innerHTML = libreria[i]['nombre'];
fila.insertCell().innerHTML = libreria[i]['provincia'];
fila.insertCell().innerHTML = libreria[i]['canton'];
fila.insertCell().innerHTML = libreria[i]['telefono'];
fila.insertCell().innerHTML = libreria[i]['email'];
let celda_configuracion = fila.insertCell();
}
};
/** I call the function to check that it works */
mostrar_librerias();
api:
HTML正文
<body>
<table id="tbl_librerias">
<thead>
<tr>
<td>Nombre</td>
<td>Provincia</td>
<td>Cantón</td>
<td>Teléfono</td>
<td>Email</td>
</tr>
</thead>
</table>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script src="js/servicio_librerias.js"></script>
<script src="js/controlador_listar_librerias.js"></script>
</body>
名义
省
坎顿
特莱福诺酒店
电子邮件
请帮助。是的
上的错误(设i=0;i
?这没有意义,listar\u librerias
会返回一个数组,librerias
不应该是未定义的
,尽管它会因为异步call@CertainPerformance是的,错误发生在那一行。哦,您有两个名为listar_librerias的函数,它们完全不同t things(可能不是一个好主意)@CertainPerformance您可能是对的,但它们位于完全不同的文件中,并使用本地作用域声明。顺便说一句,数组对象是从数据库中获取的,因此在这里为空不是一个问题。当listar\u librerias
函数返回,因为您没有等待数组被填充是for上的错误(让i=0;i
?这没有意义,listar\u librerias
会返回一个数组,librerias
不应该是未定义的
,尽管它会因为异步call@CertainPerformance是的,错误发生在那一行。哦,您有两个名为listar_librerias的函数,它们完全不同t things(可能不是一个好主意)@CertainPerformance您可能是对的,但它们位于完全不同的文件中,并使用本地作用域声明。顺便说一句,数组对象是从数据库中获取的,因此在这里为空不是一个问题。当listar\u librerias
函数返回,因为您没有等待填充数组
module.exports.listar_librerias = function(req, res){
libreriaModel.find().sort({Nombre : 'asc' }).then(
function(librerias){
res.send(librerias);
}
);
};
<body>
<table id="tbl_librerias">
<thead>
<tr>
<td>Nombre</td>
<td>Provincia</td>
<td>Cantón</td>
<td>Teléfono</td>
<td>Email</td>
</tr>
</thead>
</table>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script src="js/servicio_librerias.js"></script>
<script src="js/controlador_listar_librerias.js"></script>
</body>