我正在使用带有express.js框架的node.js和设置为“ejs”的 View 引擎来处理该项目。该项目的功能是:
1. 获取用户的输入。
2. 使用输入将请求发送到网站的 API。
3. 打印该API中的某些数据(包括稍后要使用的ID)。
4. 当用户单击包含上述数据的列表中的项目(即“a”标签)时 - 使用该项目的 ID 向同一网站发送另一个请求,以获取有关该项目的更详细信息。
我陷入了第 4 步。问题是:
当用户单击该项目时,如何从 .ejs 文件发送此 id 以在 Node.js 中发布请求?
另一种方法很简单:response.render("view name", {nodeJsVar: ejsVar});但如何传回来呢?
感谢您的帮助!
最佳答案
首先,您不能“从 .ejs 文件”发送任何数据 - 您可以做的是从浏览器发送数据,该浏览器具有呈现的 HTML(可能还有 JavaScript)而不是 EJS。
您可以使用一些客户端 JavaScript 来完成此操作,在这种情况下您可以做任何您想做的事情。
如果您使用标准 <a href="...">
,则可以通过将变量值作为路由参数或查询参数嵌入 URL 来实现此目的链接。
如果您使用表单和按钮,则可以在表单中放置隐藏输入。
如果您使用 AJAX,则可以将其放在请求的任何部分中。
只是为了确保您知道什么是什么,因为它可能会令人困惑 - 这里 X
是一个路径参数:
http://localhost/something/X
这里X
是一个查询参数:
http://localhost/something?x=X
关于node.js - 将变量从 .ejs 文件传递回express.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43000447/