我正在尝试使用带有.ejs视图的Express js.
我想将我的页面重定向到任何事件上的另一个页面,让我们说“onCancelEvent”
根据Express js文档,我可以使用res.redirect(“/ home”);
但是我无法在我的ejs文件中获得res对象.
任何人都可以告诉我如何访问.ejs文件中的req和res对象
请帮忙.
谢谢
解决方法
简答
如果要访问EJS模板中的“req / res”,可以将req / res对象传递给控制器函数中的res.render()(特定于此请求的中间件):
res.render(viewName,{ req : req,res : res /* other models */};
或者在一些服务于所有请求(包括这个请求)的中间件中设置res.locals:
res.locals.req = req; res.locals.res = res;
然后您将能够访问EJS中的“req / res”:
<% res.redirect("http://www.stackoverflow.com"); %>
进一步讨论
但是,您真的想在视图模板中使用res来重定向吗?
如果事件向服务器端发起某些请求,它应该在视图之前通过控制器.因此,您必须能够检测到条件并在控制器内发送重定向.
如果事件仅发生在客户端(浏览器端)而不向服务器发送请求,则重定向可以由客户端javascript完成:
window.location = "http://www.stackoverflow.com";