javascript EJS模板引擎+节点js express和mongoose无法正常工作

p8h8hvxi  于 2022-10-30  发布在  Java
关注(0)|答案(1)|浏览(147)

我是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>

当我执行路由时,我得到一个空结果:

你们能帮我找出我的代码有什么问题吗?

hgc7kmma

hgc7kmma1#

我知道这很少见....,请确保ObjectID是从原始产品保存在那里的。如果是,请告诉我。这是我的情况

相关问题