Jade 模板似乎没有从 Express 获取数据

Jade template does not seem to be getting data from Express

在 get 处理程序中,我从我的数据源创建了一个对象 plans。然后我做:

console.log(plans);
res.render('dashboard', plans);

它打印:

{ '0': 'mobile_basic',
  '1': 'mobile_basic',
  '2': 'landline_basic',
  '3': 'landline_mid',
  '4': 'internet_mid' }

这意味着该对象正在传递到模板中。在 dashboard Jade 模板中,我有:

if plans
  ul
    each val, index in plans
      li= index + ': ' + val

这永远不会出现。 plans 在模板的上下文中未定义。我错过了什么?

P.S。我尝试使用 res.render('dashboard', {data: plans}); 并将模板中的 plans 替换为 data.plans。还是不行。

保存数据的变量名称实际上并没有通过 res.render() 传递到视图引擎。只有它的价值。

视图可以使用的是 locals:

中指定的 keys/properties
res.render('dashboard', { plans: plans });
//                        ^^^^^

这些键将成为视图中的局部变量。


当您尝试使用时:

res.render('dashboard', { data: plans });

视图可以反过来使用 dataplans:

访问集合
if data # <--
  ul
    each val, index in data # <--
      li= index + ': ' + val