In version 3 of Express some features were removed:
the concept of a \"layout\" (template engine specific now)
partial() (template engine specific)
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
<%- body %>
//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.