'How do I create a constructor type that lets me POST?

So I have been trying to create a back-end project for my paragliding community and I am testing the features with postman while my friend is dealing with front-end.

There are lots of models I've created and before dealing with others, I was trying to do a check on user models, but I simply can't. It'll say that TypeError: User is not a constructor when I POST through postman.

routes.js

const express = require("express");
const {userModel} = require("../schemas/db-schema");
const {EventModel} = require("../schemas/db-schema");
const {PaymentModel} = require("../schemas/db-schema");
const {RulesModel} = require("../schemas/db-schema");
const {InvitationModel} = require("../schemas/db-schema");
const app = express();

app.post("/add_user", async (request, response) => {
    const user = new userModel(request.body);
    try {
      await user.save();
      response.send(user);
    } catch (error) {
      response.status(500).send(error);
    }
});

app.get("/users", async (request, response) => {
    const users = await userModel.find({});
  
    try {
      response.send(users);
    } catch (error) {
      response.status(500).send(error);
    }
  });

module.exports = app;

db-schema.js

const mongoose = require("mongoose");

const UserSchema = new mongoose.Schema({
        Name: {type:String, required: true},
        Surname:{type:String, required: true},
        Email: {type:String, required: true},
        Birth: {type:Date,required: false},
        AbsenceCount: {type:Number, required:true},
        Height: {type:Number, required:true},
        Weight: {type:Number, required:true},
        FlightCount:{type:Number, required:true},
        BloodType: {type:String, required: true},
        Sex: {type:String, required: true},
        PhoneNum: {type:String, required: true},
        Siv: {type:Boolean, required: true},
        Type: {type:String, required: true},
        Password: {type:String, required: true},
        Illness: [{type:String, required: true}],
        Drugs: [{type:String, required: true}],
        Adresses: [{type:String, required: true}],
        EmergencyName: [{type:String, required: true}],
        emergencyPhoneNum: [{type:String, required: true}]
    }
);

const UserModel = mongoose.model("UserModel", UserSchema);
const eventSchema = new mongoose.Schema({
        Name: {type:String, required: true},
        Location: {type:String, required: true},
        Date: {type:Date, required: true},
        Deadline: {type:Date, required: true},
        MaximumParticipant: {type:Number, required: true},
        Participants:[{type:String, required: true}]
});
const EventModel = mongoose.model("EventModel", eventSchema);
const paymentSchema = new mongoose.Schema({
        Name: {type:String, required: true},
        DeadLine: {type:Date, required: true},
        PaymentCategory:{type:String, required: true},
        PaymentAmount: {type:Number, required: true},
        PeopleInDebt:[{type:String, required: true}]   
});
const PaymentModel = mongoose.model("PaymentModel", paymentSchema);
const ruleSchema = new mongoose.Schema({
        EventStartDate: {type:Date, required: true},
        EventFinishDate:{type:Date, required: true},
        EventStartHour:{type:String, required: true},
        EventFinishHour: {type:String, required: true},
        BeginnerPilotEventRegister: {type:Boolean, required: true},
        ActivePilotEventRegister: {type:Boolean, required: true},
        CanRegisterEvents: {type:Boolean, required: true},
        NewMemberRegister: {type:Boolean, required: true}   
});
const RulesModel = mongoose.model("RulesModel", ruleSchema);
const invitationSchema = new mongoose.Schema({
        Name:{type:String, required: true},
        SpecialCode: {type:String, required: true},
        Deadline:{type:Date, required: true},
        Type: {type:String, required: true},
        UsageAmount:{type:Number, required: true}
});
const InvitationModel = mongoose.model("InvitationModel", invitationSchema);

module.exports = {
    InvitationModel,RulesModel,PaymentModel,EventModel,UserModel
}


Solution 1:[1]

You're exporting UserModel and try to get userModel. Change the u to uppercase in routes or to lowercase in db-schema and it will work

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Alexandru DuDu