【发布时间】:2015-12-15 00:37:27
【问题描述】:
我目前有一个建模集合,它显示与我的模型中的两个属性的查询匹配的所有文档。这两个属性显示在我的 url 路径中,并通过从路由中获取两个属性并显示与这些值匹配的文档来触发生成的路由。前任。 color: 'red', day:'monday',如果 URL 显示为 /red/monday,则显示具有这些值的所有文档(图像)。我当前的路线正确地执行了这个查询。
我现在想创建第二个集合,其中包含“颜色”和“日期”的每种可能组合的描述。基本上当我去 /red/monday 时,会显示图像,然后还会出现描述。
我不确定在一条路线内的一个查询中加入这两种组合的最佳方式。有什么帮助吗?
图像模型:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var imageSchema = new Schema({
day: { type: String, enum: ['Monday', 'Tuesday', 'Wednesday'] },
color: { type: String, enum: ['Black', 'Blue', 'White'] },
imageName: String,
imageUrl: String,
imageSource: String
});
var Images = mongoose.model('Images', imageSchema);
module.exports = Images;
描述模型:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var descriptionSchema = new Schema({
pattern: { type: String, enum: ['Monday', 'Tuesday', 'Wednesday'] },
color: { type: String, enum: ['Black', 'Blue', 'White'] },
body: String,
});
var Description = mongoose.model('Description', descriptionSchema);
module.exports = Description;
当前路线:
var express = require('express');
var router = express.Router();
var Images = require('./models/imagesModel');
var Description = require('./models/descriptionModel');
/*==== Color Pages ====*/
router.get('/:color/day-selection', function(req, res){
console.log(req.params.color);
res.render('pages/color.hbs', {
color: req.params.pattern
});
});
/*==== Results ====*/
router.get('/:color/:day/result', function(req, res){
console.log(req.params.color);
Images.find( { pattern: req.params.color, color: req.params.day }, function(err, image){
if (err) { console.log(err); }
console.log(image);
res.render('pages/result.hbs', {
color : req.params.color,
day : req.params.day,
image : image
});
});
});
【问题讨论】:
标签: node.js mongodb express mongoose routes