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