Мангуст Население Экспресс, не работает на производстве (Heroku) - PullRequest
0 голосов
/ 14 ноября 2018

Это приложение MERN, размещенное на github и отлично работающее на localhost.К сожалению, это не работает на Heroku.

Проблема заключается в запросе API, он должен возвращать объект и заполнять массив OID (см. Модель отдела).Запрос API работает.Я получаю данные из MLab, но не заполняет ... вместо этого возвращает: "surveys":[]

API-файл

router.get('/department_data/:d_oid', function(req, res) {
     Department.findOne({_id: req.params.d_oid}).populate("surveys").exec(function(err,doc){
          if(err) throw(err)
          res.send(doc)
     })
});

Модель отдела

**Department Model**
var mongoose = require("mongoose");
var Schema = mongoose.Schema;

// Create the survey schema
var departmentSchema = new Schema({

  department_name: {
    type: String,
    trim: true,
    required: true
  },

  surveys: [{
    type: Schema.Types.ObjectId,
    ref: 'Surveys'
  }],

  participants: [{
    type: String
  }],

  create_date: {
    type: Date,
    default: Date.now
  },

  created_by: {
    type: Schema.Types.ObjectId,
    ref: 'Created_By'
  },
});

departmentSchema.index({ department_name: 1, created_by: 1}, {unique: true});

const Department = mongoose.model('Departments', departmentSchema);

module.exports = Department;

Модель обследования

var mongoose = require("mongoose");
var Schema = mongoose.Schema;

// Create the survey schema
var surveySchema = new Schema({

  survey_name: {
    type: String,
    trim: true,
    required: true
  },

  questions: [{
      type: Schema.Types.ObjectId,
      ref: 'Questions'
  }],

  created_date: {
     type: Date,
     default: Date.now
  }
});

const Survey = mongoose.model('Surveys', surveySchema);

module.exports = Survey;

1 Ответ

0 голосов
/ 14 ноября 2018

Решено.

Проблема была в базе данных: идентификаторы ссылок были зашифрованы с предыдущим обновлением, поэтому при попытке заполнения Mongoose не смог найти подходящие идентификаторы OID.,

Решение: мы должны были очистить и заново посеять семена.Когда существуют правильные ссылки OID, этот код работает должным образом в localhost & Heroku.

...