在Node.js中,为什么在index.js中未定义查询结果,但在index.ejs中未定义查询结果?

时间:2019-07-19 19:25:02

标签: javascript node.js

我正在读取一个很小的表(约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。我不知道我为什么要重复查找内容。

0 个答案:

没有答案