Как отобразить несколько коллекций MongoDB, используя экспресс и руль - PullRequest
1 голос
/ 21 июня 2019

У меня есть MongoDB с 2 коллекциями. Я могу отображать только 1 коллекция ("содержимое"), используя следующую функцию в моем index.js. Я не могу отобразить второй сборник "Внутренности".

res.render('Westlands', {title: 'Westlands Branch', contents: content, 
internals: Internal});

У меня более 2 коллекций, которые я хотел бы отобразить в пункте меню на веб-странице. Я получаю первую коллекцию (содержимое) для отображения, используя: -

res.render('Westlands', {title: 'Westlands Branch', contents: content, 
internals: Internal}); 

Но внутренности на странице пустые. Я создал проект, использующий "express [имя-папки] --hbs Монго сервер вер. 4.0.10

This is my index.js 
//index.js
var express = require('express');
var router = express.Router();
var Content = require('../models/content');
var Internal = require('../models/internal');

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'PACIS Internal Contacts' });
   });
 /* GET Userlist page. */
router.get('/westlands', function(req, res, next) {  
Content.find(function(err, content){
var Internal = require('../models/internal');
var internals = Internal.find();
res.render('westlands', {title: 'Westlands Branch', contents: content, 
internals: Internal});    
   });     
});
//This works great. I can view the data. The collection name is contents
    //.hbs file
    {{# each contents }}
    <hr><p>{{ this.fname }} {{ lname }}, {{ this.title }}, Ext: {{ 
     this.extension }} </p>                    
    {{/each}}

//This does not work. I get a blank. Collection Name is internals
  </li>
  <li id="b"><a href="#b">Internal Audit</a>
  {{# each internals}}                    
     <hr><p>{{ this.fname }} {{ lname }}, {{ this.title }}, {{ 
     this.extension }} </p> 
  {{/each}}         


 //Models are similar

 var mongoose = require('mongoose');
  var schema = new Schema({
    fname: {type: String, required: true},
    lname: {type: String, required: true},
    title: {type: String, required: true},
    email: {type: String, required: true},
    department: {type: String, required: true},
    branch: {type: String, required: true},
    extension: {type: Number, required: true},
    dline: {type: Number, required: true}

 });

//model name is Internal
module.exports = mongoose.model('Internal', schema); 


var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var schema = new Schema({
    fname: {type: String, required: true},
    lname: {type: String, required: true},
    title: {type: String, required: true},
    email: {type: String, required: true},
    department: {type: String, required: true},
    branch: {type: String, required: true},
    extension: {type: Number, required: true},
    dline: {type: Number, required: true}

  });

    //model name is Content

   module.exports = mongoose.model('Content', schema); 

У меня в веб-приложении есть два пункта меню, каждый из которых помечен. При нажатии я должен уметь отображать коллекции.

...