【问题标题】:how do I access the result(object) of a get request using express?如何使用 express 访问获取请求的结果(对象)?
【发布时间】:2018-01-01 21:57:13
【问题描述】:

这是我对 mysql 表的获取请求

app.get('/', (req, res) => {
let sql = 'SELECT * from emarttesttable WHERE id = 229';
let query = db.query(sql, (err, results) => {
    if(err){console.log(err);}
    else{
        console.log(results);

    }
});
res.render('index');

});

就目前而言,这个函数允许我从表格中获取我想要的信息,并且我可以通过 console.log 读取结果。但是,我无法访问我的 index.ejs 页面上的结果。

如何访问我的 index.ejs 文件中的结果(这是一个包含我想要的东西的对象)?每当我尝试访问结果时,它都会说导致未定义。如何确保由于调用表而创建的对象能够在不同的页面上使用/访问。目前,我只想创建一个简单的表,其中一列中的键和第二列中的值。

【问题讨论】:

标签: mysql json node.js object express


【解决方案1】:

您需要修改您的代码,如下所示。原因是 db.query 是一个异步操作,并且您试图在异步请求完成之前呈现。此外,为了能够在模板引擎中获得结果,您需要将结果传递给渲染。 (index.ejs)

app.get('/', (req, res) => {
let sql = 'SELECT * from emarttesttable WHERE id = 229';
let query = db.query(sql, (err, results) => {
    if(err){console.log(err);}
    else{
        res.render('index', results);
        console.log(results);

    }
});

【讨论】:

  • 感谢您回答我的问题。我重写了函数,以便在 else 语句之后呈现方向(就像你所做的那样)。但是,我仍然无法在我的 index.ejs 文件中显示结果。在 div 中显示结果的最简单方法是什么?
    ?
  • 快速更新:使用 res.render('index', {results: results});然后在我的 ejs 文件中使用

    ,我能够查看结果。不知道我将如何解析结果,以便创建一个包含 2 列的表

  • 如果没有 {results: results},您提供的答案将无法完全发挥作用。如果您可以提供一种使用 ejs 文件显示结果的方法..我很乐意为您服务。非常感谢您指出需要移动 res.render 函数。
猜你喜欢
  • 2018-03-01
  • 2012-09-13
  • 2014-05-31
  • 2018-02-18
  • 2022-07-04
  • 2021-12-25
  • 2021-09-13
  • 2014-01-27
  • 1970-01-01
相关资源
最近更新 更多