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

时间:2015-02-05 14:08:44

标签: sails.js

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

我决定使用 hook ,但无法理解,我如何编写自己的 res.render 的实现。

有任何想法或建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

你可以像这里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渲染风帆:sails-hook-bem-render