Хорошо, оператор block body
- это просто блок с телом имени, поэтому в макете у вас нет тега body
, его нужно добавить в index.jade (что вы пытаетесь сделать) , Однако в вашем index.jade вы заменяете содержимое блока только на body.index (который, я полагаю, поскольку я не на моем компьютере разработчика и не могу попробовать его прямо сейчас), выполняет Хорошо, но вынимает весь контент, в результате вы получаете только пустое тело, хотя оно должно иметь атрибут class = 'index').
Что вы можете попробовать, это (в index.jade):
block prepend body
body.index
Но я не уверен, что остальная часть вашего layout.jade (div # wrap) будет правильно отображаться под телом (я сомневаюсь в этом).
То, что я бы порекомендовал, если на самом деле нужно просто добавить условный класс в тело, это примерно так в layout.jade (вместо тела блока):
body(class=myClassLocalVar)
Где myClassLocalVar указан в вашем вызове .render (res.render('index', {myClassLocalVar: 'theClass'});
). myClassLocalVar может даже быть массивом, и jade назначит все классы в массиве вашему телу.