【发布时间】:2021-08-28 15:50:13
【问题描述】:
我定义了一个控制器,代码如下:
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 导出到一个对象中,所以
const { paymentModel } = require('....')而不是const paymentModel = require('...') -
您已经创建了 schemaPay 并导出了 paymentModel 这就是它给出错误的原因
-
更改您的导出
module.exports = mongoose.model('schemaPay', schemaPay); -
我忘记粘贴这部分代码:const paymentModel= mongoose.model('StudentPayments' , schemaPay);
-
我有几个模型,所以我使用 {} 导出所有模型
标签: javascript node.js api mongoose get