Как хранить коллекцию модулей mongoose, содержащих схему mongoose, внутри массива объектов? - PullRequest
0 голосов
/ 09 июля 2019

В настоящее время я работаю над этим проектом, используя mongo, express и node, и я совершенно новый в них.У меня есть несколько модулей, содержащих схему Мангуста, хранящихся в переменных.Затем я хочу создать массив объектов, каждый из которых имеет значение, равное имени этой переменной.Как мне получить доступ к значению этих объектов, а затем рассматривать как схему?Поскольку мой текущий код всегда возвращает «TypeError: # не является функцией» в браузере.

Сначала я присваивал каждому значению объект ключа в виде строки, но это не сработало, а затем японял ошибку, которую я сделал, а затем я удалил кавычку, но это также не сработало

// =============== Modules =============
const bbrc      = require('./models/backbone_rc_model'),
      bbrp      = require('./models/backbone_rp_model'),
      bbip      = require('./models/bbip_model'),
      gamas     = require('./models/gamas_model'),
      gamasFeeder       = require('./models/gamas_feeder_model'),
      gamasGaul         = require('./models/gamas_gaul_model'),
      gamasOdcodp       = require('./models/gamas_odc_odp_model'),
      gamasSekunder     = require('./models/gamas_sekunder_model'),
      metroRc           = require('./models/metro_rc_model'),
      metroRp           = require('./models/metro_rp_model'),
      predictiveMetro   = require('./models/predictive_metro_model')
      //each of the aboves have their own page showing different tables from 
      //collections in database
// =====================================

// ============ Tables Object ==========
var tablesObj = 
    [
        {backbone_rc: bbrc},
        {backbone_rp: bbrp},
        {bb_ip_terra: bbip},
        {gamas      : gamas},
        {gamas_feeder: gamasFeeder},
        {gamas_gaul: gamasGaul},
        {gamas_odc_odp: gamasOdcodp},
        {gamas_sekunder: gamasSekunder},
        {metro_rc: metroRc},
        {metro_rp: metroRp},
        {predictive_metro: predictiveMetro}
    ]
// =====================================

// 0000000000000 EDIT Content Sub Menu 0000000000000000000
// each of table page has "Edit" button that will render 'edit_content' ejs //file

app.get('/:table/edit', (req, res) => {
    var skema = req.params.table
    tablesObj.forEach(function(item){
        if(skema == (Object.keys(item)).toString()){
            skema = Object.values(item)
            return skema
        }
    })

    skema.find({}, (err, items) => {
        if(err){
            console.log('Not found')
        }
        else{
            res.render('edit_content', {items: items})
        }
    })
})

Я ожидал, что skema.find ({}, (err, item) => {...}) автоматически отображает страницу edit_content каждый раз при нажатии кнопки «Редактировать» на любой странице: таблиц.

Надеюсь, вы сможете решить эту проблему, спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...