【问题标题】:How to post data back on webpage in node js如何在节点js中将数据发布回网页
【发布时间】:2015-06-08 02:53:29
【问题描述】:

刚开始使用 Node.js,现在我成功配置了 Postgres 数据库。我可以从 db 中获取记录,也可以在 console.log 中查看记录。 但是现在我有点卡住了如何将数据发布回同一页面。

我有一个名为 index 的页面,其中包含两个文本字段和一个提交按钮。当我使用用户名和 ID 提交数据时,我会在 request.post 方法中收到此请求。

router.post('/', function (req, res) {
    var username = req.body.username;
    var userid = req.body.userid;

    // method which take parameters and return records from db
    getRecords(userid, username, function (result, found) {
        if (found) {
            console.log(result.rows.length);
        }
    });
}); 

从数据库成功传输后,我可以在控制台中看到记录数。但是现在我如何将这些数据发布到我收到此请求的同一页面(index.ejs)中。

我试过了

res.send('/', { title: result.rows.length });

在 ejs 文件中

<p>Count is <%= title %></p>

但我收到“标题”未定义的错误。 那么如何显示计数以及如何显示从数据库中获取的记录列表。

【问题讨论】:

    标签: javascript node.js postgresql postback


    【解决方案1】:

    只需编写 red.send(result) 或者如果您想发送多个响应,您可以 red.write(result) 并记住在您的网页中捕获从 nodejs 发送的结果

    【讨论】:

    • 你能解释一下吗...怎么做以及在 ejs 文件中写什么。我在 ejs 文件中写了

      count is

      .. 但同样的错误,结果未定义
    • 如果您使用从页面到服务器的 ajax 调用来进行 dB 查询和获取结果,那么您需要在客户端的 ajax 调用成功块中编写代码。我不知道如何在 ejs 中做,对不起!
    【解决方案2】:

    如果你想渲染一个带有一些变量的模板,你需要使用res.render()。例如:

    // or res.render('index', ...)
    res.render('index.ejs', { title: result.rows.length });
    

    这假设您已正确设置应用的视图设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      相关资源
      最近更新 更多