Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to export multiple Schemas in same file in mongoose

I want to export two schemas in my model js file and I want use in router js file. I have tried this code below.

This is my certification.js file(models)

const mongoose = require('mongoose');
const Schema = mongoose.schema;

const requestCertificationSchema = mongoose.Schema({
 userid: { type: String, require: true },
 certName: { type: String, require: true },
 certType: { type: String, require: true },
 examName: { type: String, require: true },
 examYear: { type: String, require: true },
 examIndex: { type: String,  require: true },
 reqDate: {type: String, require: true},
 state: { type: String, require: true}
});

const requestCertification = mongoose.model("requestCertification", requestCertificationSchema);

module.exports.saveRequest = function (newRequestCertification, callback) {
     newRequestCertification.save(callback);
};

const requestStudentstatusSchema = mongoose.Schema({
 studentName: { type: String, require: true },
 admissionNum: { type: String, require: true },
 dateofAdmission: { type: String, require: true },
 currentStatus: { type: String, require: true },
 description: { type: String, require: true },
});

const requestStudentstatus=  mongoose.model("requestStudentstatus", requestStudentstatusSchema);

module.exports = {
  requestCertification: requestCertification,
  requestStudentstatus: requestStudentstatus
}

This is my certification.js file(routes)

const router = express.Router();
const Certification = require('../models/certification');
const config = require('../config/database');

router.post("/requestCert", function (req, res) {
    const newRequest = new requestCertification({
        userid: req.body.userid,
        certName: req.body.certName,
        certType: req.body.certType,
        examName: req.body.examName,
        examYear: req.body.examYear,
        examIndex: req.body.examIndex,
        reqDate:req.body.reqDate,
        state: req.body.state
    });
    console.log(newRequest);
    Certification.requestCertification.saveRequest(newRequest, function (err, request) {
        if (err) {
            res.json({ state: false, msg: "Data inserting Unsuccessfull..!" });
        }
        if (request) {
            res.json({ state: true, msg: "Data inserted Successfully..!" });
        }
    });
});

When I call this url i have show this error! .

ReferenceError: requestCertification is not defined

like image 481
Sachin Muthumala Avatar asked Dec 06 '25 08:12

Sachin Muthumala


2 Answers

Change this code to this one in routes/certification.js

const router = express.Router();
const {requestCertification} = require('../models/certification');
const {requestStudentstatus} = require('../models/certification');
const config = require('../config/database');

router.post("/requestCert", function (req, res) {
    const newRequest = new requestCertification({
        userid: req.body.userid,
        certName: req.body.certName,
        certType: req.body.certType,
        examName: req.body.examName,
        examYear: req.body.examYear,
        examIndex: req.body.examIndex,
        reqDate:req.body.reqDate,
        state: req.body.state
    });
    // console.log(newRequest);
    newRequest
        .save()
        .then(result => {
            console.log(result)
            res.json({ state: true, msg: "Data inserted Successfully..!" });
        })
        .catch(error => {
            console.log(error)
            res.json({ state: false, msg: "Data inserting Unsuccessfull..!" });
        })
});

and delete the saveRequest() function in models/certification.js

like image 69
Sachin Muthumala Avatar answered Dec 08 '25 22:12

Sachin Muthumala


const router = express.Router();
const { requestCertification, requestStudentstatus } = require('../models/certification');
const config = require('../config/database');

router.post("/requestCert", function (req, res) {
    const newRequest = new requestCertification({
        userid: req.body.userid,
        certName: req.body.certName,
        certType: req.body.certType,
        examName: req.body.examName,
        examYear: req.body.examYear,
        examIndex: req.body.examIndex,
        reqDate: req.body.reqDate,
        state: req.body.state
    });
    // console.log(newRequest);
    newRequest
        .save()
        .then(result => {
            console.log(result)
            res.json({ state: true, msg: "Data inserted Successfully..!" });
        })
        .catch(error => {
            console.log(error)
            res.json({ state: false, msg: "Data inserting Unsuccessfull..!" });
        })
});
like image 31
shanky pal Avatar answered Dec 08 '25 20:12

shanky pal



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!