老问题,但发现自己在问同样的事情。如何截取res渲染?现在使用express 4.0x。
您可以使用/编写中间件。起初,这个概念对我来说有点令人生畏,但经过阅读后,它变得更有意义了。只是对于某些阅读本文的人来说,重写res.render的动机是提供全局视图变量。我希望
session在所有模板中都可用,而不必在每个res对象中都键入它。
基本的中间件格式是。
app.use( function( req, res, next ) { //.... next();} );
下一个参数和函数调用对于执行至关重要。
next是回调函数,允许多个中间件在不阻塞的情况下完成其任务。有关更好的解释,请点击此处
然后可以用来覆盖渲染逻辑
app.use( function( req, res, next ) { // grab reference of render var _render = res.render; // override logic res.render = function( view, options, fn ) { // do some custom logic _.extend( options, {session: true} ); // continue with original render _render.call( this, view, options, fn ); } next();} );
我已经使用express 3.0.6测试了此代码。它应该可以与4.x一起正常工作。您还可以使用覆盖特定的URL组合
app.use( '/myspcificurl', function( req, res, next ) {...} );
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)