Я определил модель схемы внутри функции файла контроллера, который создает новую коллекцию в MongoDB. Я хочу, чтобы модель передавалась в файле маршрута. Я попытался выполнить const Thing = mongoose.model('admin.companyName');
в соответствии с моей схемой, я получаю сообщение об ошибке: - throw new mongoose.Error.MissingSchemaError(name); MissingSchemaError: Schema hasn't been registered for model "admin.companyName".
Use mongoose.model(name, schema)
в файле lib / index mongoose.
Моя функция внутри контроллера : -
admin.save((err, doc) =>{
if(!err){
res.send(doc);
//make copy to Company collection
let arr = Object.keys(doc.schema.obj); //doc.schema.paths if I need same ID
let Obj = {};
arr.map(key => Obj[key] = doc[key]);
var thingSchema = new mongoose.Schema({}, { strict: false, collection: admin.companyName });
var Thing = mongoose.model(admin.companyName , thingSchema);
var thing = new Thing(Obj);
thing.save();
console.log(thing);
Как передать var Thing = mongoose.model(admin.companyName , thingSchema);
в мой файл маршрута, чтобы я мог использовать его в одном из route : -
ПРИМЕЧАНИЕ: - Имя схемы admin.companyName
не является фиксированным и продолжает изменяться
const Thing = mongoose.model('admin.companyName');
Thing.updateOne( { emailResetTokenn: emailTokenn },{ $set: { verified: true }},(err) =>{ ......
РЕДАКТИРОВАТЬ: - файл маршрутизации
const express = require ('express');
const router = express.Router();
const mongoose = require ('mongoose');
const Admin = mongoose.model('Admin');
const Thing = mongoose.model('Thing');
const ctrlAdmin = require ('../controllers/admin.controller.js');
const jwt = require('jsonwebtoken');
router.get('/verify',function(req,res){
console.log('request recieved');
const emailTokenn = req.query.id;
console.log(emailTokenn);
Thing.updateOne( { emailResetTokenn: emailTokenn },{ $set: { verified: true }},(err) =>{
if(!err){
return res.redirect('https://localhost/something.com/fw18/index.html');
}
else{
throw err;
}
});
});