node.js – 如何在.ejs文件中获取Expreejs的req和res对象

我正在尝试使用带有.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";

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...