如何将数组对象传递给 Jade

How to pass an array object to Jade

为什么这不起作用?

music.js

var files = fs.readdirSync('public/mymusic');
view.render('music', {mydata: files});

music.jade

script(type='text/javascript').
  for (var i=0; i<mydata.length; i++) {
  console.log(mydata[i]);
  }

ReferenceError: mydata 未定义

这个link好像是说我需要先stringify再解析object,然后我就没有原来的array了。 how to pass an array of objects to jade template?

您确定要将 Javascript 代码块输出到 运行 客户端吗?

如果是这样,您必须在客户端定义变量Javascript:

script(type="text/javascript").
  var mydata = !{JSON.stringify(mydata)}
  for (var i=0; i<mydata.length; i++) {
    console.log(mydata[i])
  }

您传递给 Jade 视图引擎的数据不会在客户端和服务器端代码之间共享。