将.ejs文件中的变量传递回express.js

时间:2017-03-24 13:13:40

标签: node.js api express ejs

我正在使用带有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});但是如何把它传回去?
谢谢你的帮助!

2 个答案:

答案 0 :(得分:3)

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

您可以使用某些客户端JavaScript执行此操作,在这种情况下,您可以执行任何操作。

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

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

如果你正在使用AJAX,你可以把它放在请求的任何部分。

只是为了确保你知道什么是因为它可能令人困惑 - 这里X是一个路径参数:

http://localhost/something/X

此处X是一个查询参数:

http://localhost/something?x=X

答案 1 :(得分:0)

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

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