如何在 salsjs 中完全重新定义 `res.render` 方法?

How to completely redefine `res.render` method in salsjs?

我想在 sailsjs 应用程序中完全重新定义 res.render 方法: 我的模板引擎与合并不兼容。

我决定使用hook,但是不明白,我怎么能写自己的实现res.render.

有什么想法或建议吗?

谢谢!

你可以像这里一样做lib/hooks/views/index.js(在你的帆钩上)

sails.on('router:before', function() {
    sails.router.bind('/*', function(req, res, next) {
        // here you can reimplement the res.render method, of example:
         res.render = function render(data) {
             // For access `req` data in your template engine,
             // many useful info stored here like:
             // req.options.controller – current `controller`
             // req.options.action – current `action`
             data.req = req;

             var html = yourTemplateEngineRender(data);

             res.set({
                 'Content-Type': 'text/html',
                 'Content-Length': Buffer.byteLength(html, 'utf8')
             });

             res.send(html);
         } 
    }, 'all');
});

查看我的挂钩,它启用 bem rendering for sails: sails-hook-bem-render