子模式不工作猫鼬

时间:2015-07-04 21:52:33

标签: node.js mongodb

我正在尝试访问我所在城市架构中的子架构,但我似乎错误地在控制器中编写了代码。 (我得到的错误是没有定义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);

1 个答案:

答案 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