我正在尝试访问我所在城市架构中的子架构,但我似乎错误地在控制器中编写了代码。 (我得到的错误是没有定义Bar):
控制器:
exports.updateBar = function(req,res) {
City.findById(req.params.id, function(err, city) {
if (err) { return handleError(res, err); }
if(!city) { return res.send(404); }
Bar.findById(req.params.barId, function(err, bar) {
var updated = _merge(bar, req.body);
updated.save(function (err) {
if (err) { return handleError(res, err); }
return res.json(200, bar);
});
})
});
};
型号:
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var barSchema = new Schema({
_id: String,
going: Number,
location: String
});
var CitySchema = new Schema({
_id: String,
bars: [barSchema]
});
module.exports = mongoose.model('Bar', barSchema);
module.exports = mongoose.model('City', CitySchema);
答案 0 :(得分:0)
您首先导出Bar
模型,然后再次导出City
。因此只导出City
。用以下内容替换这两行:
...
exports.Bar = mongoose.model('Bar', barSchema);
exports.City = mongoose.model('City', CitySchema);
然后要求他们这样:
var models = require('models'),
City = models.City,
Bar = models.Bar