如何使用Express和Handlebars显示多个MongoDB集合

时间:2019-06-21 12:50:06

标签: node.js mongodb express-handlebars

我有一个具有2个集合的MongoDB。我只能显示1 在我的index.js中使用以下功能收集(“内容”)。我无法显示第二个集合“内部”。

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

我要在网页的菜单项上显示两个以上的收藏集。我得到第一个收藏集(内容),使用:-

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

但是内部结构在页面上显示为空白。我创建了 使用“ express [文件夹名称] --hbs”的项目 Mongo服务器版本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); 

我的Web应用程序上有两个菜单项,每个菜单项都带有标签。通过单击我应该 能够显示收藏集。

0 个答案:

没有答案