我想从sql server数据库(我使用mssql模块来做到这一点:https://www.npmjs.com/package/mssql)获取数据并将其发送给Redis。 所以我创建了三个文件:从mssql模块中的异步函数返回数据
- sql_server.js包含了所有与SQL_SERVER的功能(如连接到数据库和查询)
- redis.js具有的功能,如连接和设置键/值对的Redis数据库(关键是一个ID和值为SQL_SERVER查询的结果)
- server.js是调用SQL_SERVER和redis的文件的功能,像一个控制器在主文件
我想流sql_server数据库并将结果发送到每个返回的行的server.js。 然后server.js文件将结果传递给redis函数,该函数将创建两个键/值。
但我不是很熟悉的node.js,我不知道如何返回查询结果server.js每一行:
这里是sql_server.js功能流数据库
execRequests: function(requestEntry, flux){
try{
const request = new sql.Request(pool)
request.stream = true // You can set streaming differently for each request
request.query(requestEntry)// or request.execute(procedure)
request.on('recordset', columns => {
//console.log(columns);
})
request.on('row', row => {
// THAT I AM DOING FOR NOW
//redisMethods.setValue(JSON.stringify(row), flux);
// THAT I WOULD LIKE TO TO
//return row;
})
request.on('error', err => {
// May be emitted multiple times
})
request.on('done', result => {
console.log("done for flux :" + flux);
})
} catch (err){
console.log(err);
}
}
这里是server.js
sqlMethods.connection().then(function(pool){
try{
if(pool._connected){
console.log("Connected to SQL Server database : " + pool.config.database);
// connection to redis database
redisMethods.connection();
// get the requests to execute
sqlMethods.getRequests().then(function(requestArray){
// loop over the array containing requests
for (var i in requestArray){
let request = requestArray[i].requete; //extract the request
let flux = requestArray[i].flux; //extract the flux name
sqlMethods.execRequests(request, flux).then(function(result){
// redisMethods.setValue(JSON.stringify(result), flux);
});
}
});
}
} catch (err){
console.log(err);
}
希望我的解释为u可以理解的,我需要你的帮助来找到一种方法将sql_server.js中的行返回给server.js。 谢谢!
你能不能添加server.js文件? –
对不起,我忘记了。 – Putxe