<%= products %>
を私のビューに入れると[Object Object]が表示されるので、mongoose resultsetがオブジェクトであると仮定しています。さて、私はproducts
オブジェクトをループしようとしていますが、それはproducts.forEach is not a function
と言います。EJSでmongooseオブジェクトを反復する
これは私のindex route
です:
var express = require('express');
var router = express.Router();
var Product = require('../model/product');
/* GET home page. */
router.get('/', function(req, res, next) {
var products = Product.find();
res.render('index', { title: 'Express', products: products });
});
module.exports = router;
、私はちょうどデシベルからそれを取得し、それをオブジェクトとして渡しています。私はvar products = Product.find({}).toArray();
を使用しようとしましたが、運が得られませんでした。そして、私が試した別の解決策は、このコードを使用している:
var products = Product.find();
var data = JSON.stringify(products);
res.render('index', { title: 'Express', products: data });
Converting circular structure to JSON
エラーを取得しています。
これは私のindex view
:
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1><%= title %></h1>
<p>Welcome to <%= title %></p>
<% products.forEach(function(product) { %>
\t <p><%= product.title %></p>
<% }); %>
</body>
</html>
Product Schema
:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var schema = new Schema({
\t imagePath: { type: String, required: true },
\t title: { type: String, required: true },
\t description: { type: String, required: true },
\t price: { type: Number, required: true }
});
module.exports = mongoose.model('Product', schema);
どのようにそれを行うための適切な方法はありますか?
'()を見つける'非同期..ですあなたが結果を得るために約束を必要とする。.. 関連します。https:/ /stackoverflow.com/questions/6180896/how-to-return-mongoose-results-from-the-find-method – Pogrindis