我是node js的初学者,我正在开发一个简单的库存app,在我的代码中,我目前使用的是MVC架构,EJS作为模板引擎,MongoDB作为数据库。
当我试图迭代EJS文件中的.find({})
方法数组时,似乎得到了一个空数组,并且没有错误。
基本上,这就是我所尝试的:
产品型号:
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
productInstanceSchema = new Schema({
product:{type: Schema.Types.ObjectId,ref: "RawProduct"},
date_added: {type: Date,required:true},
price:{type: Number, required:true},
expiration_date: {type:Date}
});
productInstanceSchema.virtual("url").get(function () {
return `product/productinstance/${this._id}`;
});
module.exports = mongoose.model("ProductInstance", productInstanceSchema);
控制器:
const RawProduct = require('../models/raw_product');
const ProductInstance = require('../models/productinstance');
exports.productinstances_byproduct = function (req,res,next) {
ProductInstance.find({})
.populate("product")
.exec(function (err, product_instances) {
if (err){
return next(err);
};
res.render('inventory', {instances:product_instances})
})
}
视图(.ejs文件):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>ESTOQUE</h1>
<ul>
<% instances.forEach(function(instance) { %>
<li>
ai ai: <%= instance.product %>
</li>
<% }); %>
</ul>
</body>
</html>
当我执行路由时,我得到一个空结果:
你们能帮我找出我的代码有什么问题吗?
1条答案
按热度按时间hgc7kmma1#
我知道这很少见....,请确保ObjectID是从原始产品保存在那里的。如果是,请告诉我。这是我的情况