Javascript 将ejs变量分配给js后无法读取属性

Javascript 将ejs变量分配给js后无法读取属性,javascript,json,express,ejs,Javascript,Json,Express,Ejs,无论出于何种原因,此代码都会在if语句中返回一个类型错误。无法读取未定义的属性product.thumbgallery1 var urlArray= []; var product = '<%- product %>'; console.dir(product); for (var count = 1; count < 6; count++) { var stringCount = c

无论出于何种原因,此代码都会在if语句中返回一个类型错误。无法读取未定义的属性product.thumbgallery1

var urlArray= [];
    var product = '<%- product %>';
     console.dir(product);


                for (var count = 1; count < 6; count++) {
                    var stringCount = count.toString();
                     if ( typeof product.data["product.thumbgallery" + stringCount].value.main.url === 'undefined' ) {
                         null
                     } else {
                            urlArray.push( product.data['product.thumbgallery' + stringCount].value.main.url )
                     }
                 }
var urlArray=[];
var乘积=“”;
console.dir(产品);
对于(变量计数=1;计数<6;计数++){
var stringCount=count.toString();
if(type of product.data[“product.thumbgallery”+stringCount].value.main.url===‘未定义’){
无效的
}否则{
URLARY.push(product.data['product.thumbgallery'+stringCount].value.main.url)
}
}
有趣的是,这段代码可以工作:

var lol = '<%- product.data["product.thumbgallery1"].value.main.url %>';
    console.log(lol);
var-lol='';
控制台日志(lol);

这是怎么回事?

要将对象传递到ejs,您需要使用:

var乘积=;

您能为我们提供产品的JSON吗?
 var product = <%- JSON.stringify(product) %>;