mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
33 lines
913 B
JavaScript
33 lines
913 B
JavaScript
var assign = require('object-assign');
|
|
var express = module.parent.require('express');
|
|
var response = express.response;
|
|
|
|
response.marko = response.marko || function(template, data) {
|
|
if(typeof template === 'string') {
|
|
throw new Error(
|
|
'res.marko does not take a template name or path like res.render. ' +
|
|
'Instead you should use `require(\'./path/to/template.marko\')` ' +
|
|
'and pass the loaded template to this function.'
|
|
)
|
|
}
|
|
|
|
var res = this;
|
|
var req = res.req;
|
|
var app = res.app;
|
|
var $global = assign({ app, req, res }, app.locals, res.locals);
|
|
|
|
if (data) {
|
|
data = assign(data, {
|
|
$global: assign($global, data.$global)
|
|
});
|
|
} else {
|
|
data = { $global };
|
|
}
|
|
|
|
res.set({ 'content-type': 'text/html; charset=utf-8' });
|
|
|
|
template.render(data, res);
|
|
};
|
|
|
|
delete require.cache[__filename];
|