【问题标题】:Passing a variable from .ejs file back to express.js将 .ejs 文件中的变量传递回 express.js
【发布时间】:2017-08-17 10:44:48
【问题描述】:

我正在使用带有 express.js 框架的 node.js 和视图引擎设置为“ejs”的项目。该项目的功能是:
1. 从用户那里获得输入。
2. 使用输入将请求发送到网站的 API。
3. 打印来自该 API 的特定数据(包括稍后使用的 ID)。
4. 当用户点击包含上述数据的列表中的项目(即“a”标签)时 - 使用该项目的 ID 向同一网站发送另一个请求以获取有关该项目的更详细信息。

我被困在第 4 步。问题是:
当用户点击该项目时,如何从 .ejs 文件发送此 id 以在 node.js 中发布请求?
另一种方法很简单: response.render("view name", {nodeJsVar: ejsVar});但是怎么传回去呢?
感谢您的帮助!

【问题讨论】:

    标签: node.js api express ejs


    【解决方案1】:

    首先,您不能“从 .ejs 文件”发送任何数据 - 您可以做的是从浏览器发送它,该浏览器具有呈现的 HTML(可能还有 JavaScript)和不是 EJS。

    您可以使用一些客户端 JavaScript 来做到这一点,在这种情况下,您可以为所欲为。

    如果您使用标准的<a href="..."> 链接,您可以通过将变量的值作为路由参数或查询参数嵌入到 URL 中来实现。

    如果您使用表单和按钮,您可以在表单中放置隐藏的输入。

    如果您使用 AJAX,您可以将其放在请求的任何部分。

    只是为了确保您知道什么是什么,因为它可能会造成混淆 - 这里 X 是一个路径参数:

    http://localhost/something/X
    

    这里X是一个查询参数:

    http://localhost/something?x=X
    

    【讨论】:

      【解决方案2】:

      试试这个(假设你使用 jQuery):

      $.ajax({
        url: '/routename_to_handle_id',
        type: 'POST',
        data: { id: id }
      }).done(function(response){
       //callback to handle if it's successful
      })
      

      【讨论】:

        猜你喜欢
        • 2019-06-07
        • 2018-03-20
        • 1970-01-01
        • 1970-01-01
        • 2016-03-04
        • 1970-01-01
        • 1970-01-01
        • 2016-03-25
        相关资源
        最近更新 更多