如何在 nodejs 上等待 msSQLdb 响应
How to wait for msSQLdb response on nodejs
我正在制作一个我需要“res.send()”SQLdb 响应的应用程序。问题是我的数据库发送响应太晚了。
这是我目前的解决方案:
var sqlres;
function sqldb(SQLquery){
sql.connect(config, function (err) {
if (err) console.log(err);
var request = new sql.Request();
request.query(SQLquery, function (err, recordset) {
if (err) console.log(err)
sqlres = recordset.recordset;
});
});
}
app.get('/db', function (req, res) {
sqldb('SELECT * from dbo.pontos');
const timeoutObj = setTimeout(() => {
res.send(sqlres);
}, 1500);
});
如果我删除“setTimeout”,这是我在第一次加载时得到的:
image
这是上面代码的第二个 run/result:result
您在此实例中使用了回调,因此您需要将回调传递给 sqldb()
函数。所以
var sqlres;
function sqldb(SQLquery, cb){
sql.connect(config, function (err) {
if (err) console.log(err);
var request = new sql.Request();
request.query(SQLquery, function (err, recordset) {
if (err) console.log(err)
sqlres = recordset.recordset;
cb(sqlres)
});
});
}
app.get('/db', function (req, res) {
sqldb('SELECT * from dbo.pontos', (sqlres) => {
res.send(sqlres);
});
});
我正在制作一个我需要“res.send()”SQLdb 响应的应用程序。问题是我的数据库发送响应太晚了。
这是我目前的解决方案:
var sqlres;
function sqldb(SQLquery){
sql.connect(config, function (err) {
if (err) console.log(err);
var request = new sql.Request();
request.query(SQLquery, function (err, recordset) {
if (err) console.log(err)
sqlres = recordset.recordset;
});
});
}
app.get('/db', function (req, res) {
sqldb('SELECT * from dbo.pontos');
const timeoutObj = setTimeout(() => {
res.send(sqlres);
}, 1500);
});
如果我删除“setTimeout”,这是我在第一次加载时得到的:
image
这是上面代码的第二个 run/result:result
您在此实例中使用了回调,因此您需要将回调传递给 sqldb()
函数。所以
var sqlres;
function sqldb(SQLquery, cb){
sql.connect(config, function (err) {
if (err) console.log(err);
var request = new sql.Request();
request.query(SQLquery, function (err, recordset) {
if (err) console.log(err)
sqlres = recordset.recordset;
cb(sqlres)
});
});
}
app.get('/db', function (req, res) {
sqldb('SELECT * from dbo.pontos', (sqlres) => {
res.send(sqlres);
});
});