Вы путаете выполнение pug на стороне сервера и выполнение на стороне клиента.
Когда у вас есть тег script.
в вашем шаблоне pug, все, что там, будет отправлено в браузер и будетвыполняется там, если он сформирован правильно.
Когда вы используете знак равенства в теге, таком как h1= grid1
, который будет оцениваться pug на сервере.
Итак, выпытаются получить доступ к переменной на стороне клиента (grid1
) в контексте на стороне сервера.Эта переменная не существует в pug и будет отображать undefined
, поэтому вы ничего не получаете в окне браузера.
Вам нужно будет передать фактический объект вместо строковой версии в шаблончтобы отобразить его так, как вы хотите:
res.render('index2', { title: 'Tic Tac Toe', date: today, player: name, gb:boardgame});
Затем вы можете сделать это в своем шаблоне pug, поскольку переменная будет доступна для контекста выполнения шаблона:
h1= gb.grids[0]