У меня есть два проекта в hapiJS
и mongoDB
.Один для администратор , а другой для обычный пользователь .Я пытаюсь получить доступ к коллекции БД от admin user , которая определена у normal user .Следующая ошибка генерируется, когда я запускаю проект
{ MissingSchemaError: Schema hasn't been registered for model "Category". Use mongoose.model(name, schema)
at new MissingSchemaError (/home/jeslin/projects/hapi/gg-admin/node_modules/mongoose/lib/error/missingSchema.js:22:11)
at Mongoose.model (/home/jeslin/projects/hapi/gg-admin/node_modules/mongoose/lib/index.js:380:13)
at Object.<anonymous> (/home/jeslin/projects/hapi/gg-admin/app/helpers/dashboard.js:7:27)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/home/jeslin/projects/hapi/gg-admin/app/controllers/web/dashboard.js:2:25)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3) message: 'Schema hasn\'t been registered for model "Category".\nUse mongoose.model(name, schema)', name: 'MissingSchemaError' }
мой контроллер:
exports.showAllCategory = {
description: 'returns all caregories',
auth: {
mode: 'try',
strategy: 'standard'
},
handler: async (request,h) => {
try {
if (request.auth.isAuthenticated) {
var userDetails = request.auth.credentials;
let category = await dashboardHelper.fetchAllCatogeryItems();
if (category.statusCode === 200) {
return h.view('dashboard/dashboard', {user: userDetails, categoryData: category.categoryData});
}
}
} catch (error) {
return h.redirect('/dashboard');
}
}
};
и мои действия с БД выполняются в следующем файле helper.js
:
'use strict';
const Mongoose = require('mongoose');
const Category = Mongoose.model('Category');
const Joi = require('joi');
exports.fetchAllCatogeryItems = async() =>{
return new Promise(async (resolve, reject) =>{
try {
let category = await Category.find();
if (categoryData) {
return resolve({
statusCode: 200,
categoryData: category
})
} else {
statusCode: 400
}
} catch (error) {
return reject(error)
}
});
};
Я подключил среду MONGO_URL, чтобы оба приложения указывали на один и тот же mongodb, и могу получить доступ к models
, определенному в пользовательском модуле администратора
Я знаю, что мой кодне будет работать, так как моя Category
модель определила в обычный пользователь и пытается получить доступ в администратор
Возможно ли получить доступ к моделямопределенный в обычный пользователь проект кто-нибудь ??Пожалуйста, помогите мне найти решение этой проблемы.Я потратил почти 2 дня на это.также я не опытен в nodejs
(hapijs
)