我正在读取一个很小的表(约20行),并且想要在本地网页上显示结果。
我使用express使用ejs选项为视图设置了一个node.js网站。 我执行select语句,并可以在index.ejs中看到结果,但是当我尝试在index.js中访问相同的结果时,出现未定义的错误。为什么?
我需要在此处访问此数据以进行处理,并将计算结果发送到index.ejs。 如何在index.js中访问此数据?
var express = require('express');
var sql = require('mssql');
var config = {
user: 'username',
password: 'password',
server: 'localhost',
database: 'mydatabase'
};
var query_result;
sql.connect(config).then(pool => {
return pool.request()
.query('select * from test')
}).then(result => {
console.dir(result); //here it logs the results
query_result = result.recordset;
});
console.dir(query_result) // here it logs "undefined"
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index',
{
result: query_result
}
);
});
module.exports = router;
实际结果:在控制台中,“ console.dir(query_result)//行记录为“ undefined””显示为未定义。
预期结果:“ console.dir(query_result)//行,这里记录了“ undefined””,显示了控制台中表测试中的数据。
根据建议,我看了How do I return the response from an asynchronous call?,该问题正在使用AJAX,但是我的代码未使用AJAX。我不知道我为什么要重复查找内容。