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