У меня есть 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);
У меня в веб-приложении есть два пункта меню, каждый из которых помечен. При нажатии я должен
уметь отображать коллекции.