Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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-从提供未定义节点的专家处返回对象数组_Javascript - Fatal编程技术网

Javascript-从提供未定义节点的专家处返回对象数组

Javascript-从提供未定义节点的专家处返回对象数组,javascript,Javascript,在我的节点JS服务器上,我有我的模块文件。我的模块文件连接到数据库并提取行列表。我正在导出一个返回对象数组的函数。基本上,我想返回我从数据库中获得的信息,并将其传递回我的主脚本来处理它 这就是我的模块脚本的样子 --mymodule.js-- 输出结果如下所示 --输出-- 因此,问题是返回值听起来是未定义的编辑 重复的-完全相同的逻辑 您正在执行异步操作,所以不能只将其结果分配给变量。您可以做的是将callback参数(这将是一个函数)添加到smsdgetlist函数中,并使用结果调用它,在

在我的节点JS服务器上,我有我的模块文件。我的模块文件连接到数据库并提取行列表。我正在导出一个返回对象数组的函数。基本上,我想返回我从数据库中获得的信息,并将其传递回我的主脚本来处理它

这就是我的模块脚本的样子

--mymodule.js--

输出结果如下所示

--输出--

因此,问题是返回值听起来是未定义的

编辑

重复的-完全相同的逻辑


您正在执行异步操作,所以不能只将其结果分配给变量。您可以做的是将
callback
参数(这将是一个函数)添加到
smsdgetlist
函数中,并使用
结果调用它,在您的情况下,这将是
smsdlist

function smsdgetlist(smsdgroupid, callback){
    connection.connect();
    connection.query(query, function(err, rows, fields){
        for (i = 0; i < rows.length; i++) {
            smsdlist.push (new smsdcontact(rows[i].memfname,rows[i].memlname,rows[i].memcell,rows[i].mememail));
        }
        // after pushing all elements to desired variable, use the callback
        connection.end();
        callback(smsdlist);
    });
}

您的输出包含有趣的引号组合。有单引号,双引号,排版引号。。。你绝对不可能从显示实际输出的实际窗口复制它。抱歉@m_调用了额外的引号,因为我试图通过更改数据而不是更改输出来屏蔽真实数据。
var test = require("./smsdsql.js");
var returnedarray = test.smsdgetlist("0");
console.log(returnedarray)
C:\node main.js
undefined
The number of rows found are:  2
[ smsdcontact {
    fname: ‘user 1 first name',
    lname: ‘use 1 last name',
    smsdcell: ‘user 1 cell phone',
    smsdemail: ‘user 1 email },
  smsdcontact {
    fname: 'user 2 first name'',
    lname: 'user 2 last name',
    smsdcell: 'user 2 cell phone',
    smsdemail: ‘user 2 email' } ]
function smsdgetlist(smsdgroupid, callback){
    connection.connect();
    connection.query(query, function(err, rows, fields){
        for (i = 0; i < rows.length; i++) {
            smsdlist.push (new smsdcontact(rows[i].memfname,rows[i].memlname,rows[i].memcell,rows[i].mememail));
        }
        // after pushing all elements to desired variable, use the callback
        connection.end();
        callback(smsdlist);
    });
}
var test = require("./smsdsql.js");
test.smsdgetlist("0", function(result){
    console.log(result); // here you would obtain the smsdlist array from smsdgetlist function
});