Javascript NodeJS返回要传递到另一个文件的SQL查询

Javascript NodeJS返回要传递到另一个文件的SQL查询,javascript,sql,node.js,return-value,Javascript,Sql,Node.js,Return Value,在过去的两天里,我一直在为数据的返回而挣扎。我真的需要帮助才能在另一个.js文件中显示,但我似乎做不到 从我所做的所有研究中,我知道我需要回调函数来执行返回。当我在file1.js中输出数据时,它会显示,这是正确的 但是,我需要访问我的文件2.js中返回的数据,但它没有显示出来。 我遗漏了什么吗?请帮忙,任何回复都将不胜感激。谢谢 请注意,file1.js中的return语句就在代码末尾。 此外,在函数外部访问时,我的“res”数组始终为空。为什么会这样 file1.js var sql=re

在过去的两天里,我一直在为数据的返回而挣扎。我真的需要帮助才能在另一个.js文件中显示,但我似乎做不到

从我所做的所有研究中,我知道我需要回调函数来执行返回。当我在file1.js中输出数据时,它会显示,这是正确的

但是,我需要访问我的文件2.js中返回的数据,但它没有显示出来。 我遗漏了什么吗?请帮忙,任何回复都将不胜感激。谢谢

请注意,file1.js中的return语句就在代码末尾。 此外,在函数外部访问时,我的“res”数组始终为空。为什么会这样

file1.js

var sql=require(“mssql”);
//为Azure SQL连接参数创建配置对象
var dbConfig={
服务器:“***”,//使用您的SQL server名称
数据库:“***”,//要连接的数据库
用户:“***”,//使用您的用户名
密码:“***”,//使用您的密码
港口:1433,
//由于我们使用的是Windows Azure,因此需要设置以下选项
选项:{
加密:真
}
};
var obj={};
var-res=[];
//此函数连接到SQL server,执行SELECT语句,
//并在控制台中显示结果。
函数getProducts(回调){
//创建连接实例
var conn=newsql.ConnectionPool(dbConfig);
连接
//成功连接
.然后(函数(){
//创建请求实例,传入连接实例
var req=新的sql.Request(conn);
//调用mssql的查询方法传递参数
请求查询(“选择sp.product\u名称,计数(ss.product\u id)作为‘数量’”+
“从smartcoolerstocks ss加入smartcoolerproducts sp”+
“在sp.product\u id=ss.product\u id上”+
“按sp产品名称分组”)
.then(函数(记录集){
//console.log(recordset.recordset);
康涅狄格州关闭();
//需要回调函数吗
log(recordset.recordset.length);
对于(var i=0;i
  • 您无法看到
    res
    ,因为它的竞争条件是,您的
    console.log(res)
    recordset
    回调之前执行

  • file1.js
    已经执行了getProducts函数,因此没有返回到
    file2.js
    的数据

  • var sql=require(“mssql”);
    //为Azure SQL连接参数创建配置对象
    var dbConfig={
    服务器:“***”,//使用您的SQL server名称
    数据库:“***”,//要连接的数据库
    用户:“***”,//使用您的用户名
    密码:“***”,//使用您的密码
    港口:1433,
    //由于我们使用的是Windows Azure,因此需要设置以下选项
    选项:{
    加密:真
    }
    };
    var obj={};
    var-res=[];
    //此函数连接到SQL server,执行SELECT语句,
    //并在控制台中显示结果。
    函数getProducts(回调){
    //创建连接实例
    var conn=newsql.ConnectionPool(dbConfig);
    连接
    //成功连接
    .然后(函数(){
    //创建请求实例,传入连接实例
    var req=新的sql.Request(conn);
    //调用mssql的查询方法传递参数
    请求查询(“选择sp.product\u名称,计数(ss.product\u id)作为‘数量’”+
    “从smartcoolerstocks ss加入smartcoolerproducts sp”+
    “在sp.product\u id=ss.product\u id上”+
    “按sp产品名称分组”)
    .then(函数(记录集){
    康涅狄格州关闭();
    回调(null,recordset.recordset);
    过程。退出(1);
    })
    //处理sql语句执行错误
    .catch(函数(err){
    控制台日志(err);
    康涅狄格州关闭();
    回调(err,null);
    })
    }).catch(函数(err){
    控制台日志(err);
    康涅狄格州关闭();
    回调(err,null);
    });
    }
    module.exports=getProducts;