Javascript 如何将变量从一个EJS页面传递到另一个EJS页面
您好Javascript 如何将变量从一个EJS页面传递到另一个EJS页面,javascript,node.js,express,Javascript,Node.js,Express,您好如何将变量从一个EJS页面传递到另一个EJS页面。例如,我有这个页面 // insertion.ejs // <!DOCTYPE html> <html lang=”en”> <head></head> <header> <% include ../views/header %>
如何将变量从一个EJS页面传递到另一个EJS页面。
例如,我有这个页面
// insertion.ejs //
<!DOCTYPE html>
<html lang=”en”>
<head></head>
<header>
<% include ../views/header %>
</header>
<body>
<script>
var a="hello";
</script>
</body>
</html>
//insertion.ejs//
var a=“你好”;
这一页呢
// get.ejs //
<!DOCTYPE html>
<html lang=”en”>
<head></head>
<header>
<% include ../views/header %>
</header>
<body>
<script>
var b
</script>
</body>
</html>
//get.ejs//
变量b
那么如何将变量a的内容传递给变量b呢?您可以使用LocalStorage概念。 下面是如何使用本地存储的说明。
如果您想在用户单击链接并从一个页面转到另一个页面时传递该值,则可以使用查询参数并创建如下链接:
<a href="page2?name=value">link</a>
其中,name
是查询参数的名称,value
是其值,可由EJS模板使用适当的数据填充
现在,您可以在路由处理程序中获取该参数,并将其与其他变量一起传递给模板,也可以通过页面上的客户端JavaScript访问该参数
如果您希望在某种意义上传递变量,即希望该变量可供用户使用,那么您需要使用一些会话存储、cookie或本地存储
如果您希望将变量从一个页面传递到其他所有用户以减少重复,则应使用include
将其包含在所有需要它的页面中,或通过处理程序传递
从您的问题来看,您的意图并不十分明确,但这或多或少是您在所有情况下都可以做的。您可以在一个页面中建模绑定,但不能在两个单独的页面中建模绑定。为此,您已经制定了自己的方法,您有两种新颖的方法来实现这一点,首先使用socket.io,通过这种方法,让每个页面发布和订阅事件,每当一个页面发出事件,另一个页面就会自动接收,反之亦然。另一种方法是利用节点本地存储和缓存系统模块。对于本地存储,您可以使用memcache,节点缓存只需执行npm搜索。对于快速和直接的缓存,请使用redis,redis在内存中存储数据结构,用作数据库、缓存和消息代理。它支持数据结构,如字符串、哈希、列表、集合、带范围查询的排序集合 快乐编码:):
startingContent:
是您在需要数据的页面中标识的密钥
HomeStart内容:
是要显示其值的变量
快乐编码 只要确保使用任何一种方法,您都应该有某种清理逻辑,以便在事务完成后释放空间。
<p> <%= startingContent %> </p>
app.get("/", function(req, res) {
res.render("home", {startingContent: homeStartingContent});