如何在 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
我想在 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