Domanda

I am trying to render another teams jade template using Node's Jade. The template is fairly complex and has dozens of mixins, etc. There is something like this somewhere in a mixin and I cannot make it render/compile in Express:

// ..
mixing something
    div Foo is a bar
    !{jade.render('dir/sometemplate', e)}
    // ...

Jade complains when parsing the template, that jade is undefined and therefore .render does not exist. It makes sense to me that jade is not in the locals, but how can I make this fly?

Express route (routes/index.js):

exports.index = function(req, res) {
    res.render(mod +'/module.jade', { "arg": "value, // .. JSON HERE .. } );
};

Help deeply appreciated!

È stato utile?

Soluzione

You can add jade to locals quite easily:

exports.index = function(req, res) {
    res.render(mod +'/module.jade', { jade: require('jade') } );
};

But what is the point? The task above can easily be solved by an include statement.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top