Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用.length属性在数组/函数上循环_Javascript_Ajax - Fatal编程技术网

Javascript 无法使用.length属性在数组/函数上循环

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

我的代码是西班牙语,希望没问题。我尝试使用GET调用从MongoDB调用包含对象(信息)的数组以将其显示为表,我已经在controller.js和services.js文件中定义了函数和功能,但当我尝试使用db信息进行迭代时,它显示以下错误:

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>