error : .find(…) is not a function nodejs mongoose

error : .find(…) is not a function nodejs mongoose

我定义了一个控制器,代码如下:

const  paymentModel = require("../../models/University");
class PaymentController {
async getPaymentList(req , res){
   const list = await paymentModel.find() 
   .select("amount  description  payDate payId" ).limit(20);
   res.send(list);
}

路由器如下:

const router = require ("express").Router();
const controller = require("../http/controller/PaymentController");
router.get('/' ,controller.getPaymentList);
module.exports= router;

型号:

 const mongoose = require ("mongoose");
 const schemaPay = new mongoose.Schema({
 payId  :{type:Number, required: true},
 amount :{type :String , required: true},
 description :{type :String , required:true},
 courseId:[schemaCourse] ,
 studentId:[schemaStudent],
 payDate :String ,
 });
 const paymentModel= mongoose.model('StudentPayments' , schemaPay); 
 module.exports={paymentModel };

当我用邮递员测试 api 时出现错误:paymentModel.find 不是函数 谁能帮我看看问题出在哪里?

对于您的模型,您正在导出一个包含键 paymentModel 的对象。

为了从该对象内部访问 paymentModel,您必须执行以下操作之一:

const  {paymentModel} = require("../../models/University");

const  UniversityModel = require("../../models/University"); //then access paymentModel like UniversityModel.paymentModel

如果您不想这样做,您也可以只导出一个特定模型,但是您说您有多个导出,所以是的。