In version 3 of Express some features were removed:
the concept of a "layout" (template engine specific now)
partial() (template engine specific)
Changelog: https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x
The partial()
can be changed for EJS own feature called include
, but what is the alternative for layouts?
I struggled with this as well. So I put up a github project with an example for ejs and dustjs.
https://github.com/chovy/express-template-demo
I'm not sure the difference between a partial and an include, you don't need to explicitly pass data to an include. Not sure why you would want a partial.
But for a layout, you just specify a block like this:
//layout.ejs
<html>
<%- body %>
</html>
//page1.ejs
<% layout('layout') -%>
This is loaded from page 1 and overrides <%- body %> in the layout.ejs.
If anyone wants to add more examples, just submit a pull request.