2017-01-17 11 views
1

こんにちは私はEJSファイル内のJavaScript関数を実行しようとしていますと、これは私のコードは次のようになります。ejsの問題(data.forEachは関数ではありません)!

<div class='row'> 

<% data.forEach(function(items) { %> 

    <div class='col-md-4 col-sm-6'> 
     <div class="thumbnail"> 
     <img src="<%= items.img %>" width="350" height="130"></img>  

     <div class="caption"> 
      <h4><%= items.partname %></h4> 
     </div> 
     </div> 



    </div> 

<% }); %> 

</div> 

私がしようとするファイルの私のEJS内でこれを実行したときに、私はリターンとしてこのエラーを取得します「 36 | 37 |

38 | <% data.forEach(関数(アイテム){%> 39 |
40 | 41 |

data.forEachは

ではevalで機能 (evalのではない誰もがこの問題を解決する方法を知っていますか?ここでは、配列の場合、私は、あなたがejsに戻って送信されるデータを検査するejsforeachを使用してのサンプル例です

app.use(bodyParser.urlencoded({extended: true})); 
    app.set("view engine","ejs"); 

var chairSchema=new mongoose.Schema({ 
    partname:String, 
    img:String, 
    price:Number 
}); 

var data =mongoose.model("data",chairSchema); 

data.create(
{ 
    partname:"short cylinder", 
    img:"http://www.needforseatusa.com/assets/images/products/replacement%20parts/short_cylinder_thumbnail.jpg", 
    price:14.90 
}, 
{ 
    partname:"regular cylinder", 
    img:"http://www.needforseatusa.com/assets/images/products/replacement%20parts/cylinder_thumbnail.jpg", 
    price:14.90 
},{ 
    partname:"back pillow", 
    img:"http://www.needforseatusa.com/assets/images/products/replacement%20parts/lumbar_pillow_thumbnail.jpg", 
    price:29.90 
},{ 
    partname:"head pillow", 
    img:"http://www.needforseatusa.com/assets/images/products/replacement%20parts/head_pillow_thumbnail.jpg", 
    price:29.90 
},{ 
    partname:"wheel base chrome", 
    img:"http://www.needforseatusa.com/assets/images/products/accessories/hd-base-black_thumbnail.jpg", 
    price:79.99 
},{ 
    partname:"wheel base black", 
    img:"http://www.needforseatusa.com/assets/images/products/accessories/hd_base_)1_thumbnail.jpg", 
    price:79.99 
},function(err,chair){ 
    if (err){ 
    console.log(err); 
    } 
    else{ 
    console.log("newly created chair"); 
    console.log(data); 
    } 

} 


); 
app.get("/",function(req,res){ 
    res.render('landing'); 
}); 


app.get("/campground",function(req,res){ 
    data.find({},function(err,data){ 
     if(err){ 
     console.log(err); 
     } 

    }); 

    res.render("campground", {data:data}); 
}); 
+0

。このフロントエンドコードは良いです。そのデータ変数は渡されていないか、問題があります。 ejsページでconsole.log(data)を使用するとどうなりますか?さらに便利なバックエンドリクエストを投稿する – alexr101

+0

バックエンドリクエストを追加しました –

+1

'data'は配列またはオブジェクトですか? – akinjide

答えて

0

この

は、上記の私のコードのためのバックエンドです。それ以外の場合は、 foreachが配列メソッドなので、それが正しいことを確認してください。あなたのバックエンドの要求を確認する必要が

var data = {  
    title: 'Cleaning Supplies', 
    supplies: ['mop', 'broom', 'duster'] 
}; 

EJS

<ul> 
<% data.supplies.forEach(function(value) { %> 
    <li><%= value %></li> 
<% }) %> 
</ul> 

// mop 
// broom 
// duster 
関連する問題