2014-10-04 2 views
0

Iam работает над апи с узлом/экспресс/MongoDBВторой мангуст Модель не работает

Вот мой код для api.js:

var express = require('express'), 
    mongoose = require('mongoose'); 

var app = module.exports = express(); 

mongoose.connect('correct login to mongolab'); 
var db = mongoose.connection; 
db.on('error', console.error.bind(console, 'Datenbank Verbindungsfehler:')); 
db.once('open', function() { 

    var plantSchema = new mongoose.Schema({ 
     // TODO Schema vervollständigen 
     name: String, 
     desc: String 
    }); 

    var illnessSchema = new mongoose.Schema({ 
     name: String, 
     desc: String 
    }); 

    var Plant = mongoose.model('plants', plantSchema); 
    var Illness = mongoose.model('illnesss', illnessSchema); 

    app.get('/api/find', function(req,res) { 
     Plant.find({name: new RegExp(req.query.input, "i")},function(err, query) { 
      res.json(query); 
     }); 
    }); 

    app.get('/api/plant', function(req,res) { 
     Plant.findOne({name: req.query.name},function(err, queryPlant) { 
      res.json(queryPlant); 
     }); 

    }); 

    app.get('/api/illness', function(req,res) { 
     Illness.find(function(err, queryIllness) { 
      res.json(queryIllness); 
     }); 

    }); 
}); 

Схема завод работает суммарно в порядке. Маршрутизация api возвращает мне приятного json.

Но/апи/болезнь маршрут только возвращает: []

базе:

это еси 2 Коллекции:

  1. растения
  2. illnesss

так в первых работах я просто дам вам документ второй коллекции:

{ 
    "_id" : ObjectId("543006eb31e79f8a8350422c"), 
    "name" : "test", 
    "desc" : "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum." 
} 

Таким образом, есть документ, который должен быть найден вызовом/api/disease, так как он должен вытащить все из них.

Я надеюсь, что кто-то может мне помочь.

+0

Название модели 'illnesss', скорее всего, приведет к отображению в имени коллекции из' потому что «болезни» не являются надлежащим множественным числом. – JohnnyHK

+0

oh человек, поэтому для этого мне нужен хороший английский? Это сработало, спасибо большое, никогда не думал, что это будет такая проблема – thacorum

ответ

0

Mongoose pluralizes ваше имя модели, чтобы создать имя коллекции, так как illnesss не является надлежащим множественным числом, вероятно, используется название коллекции illnessses.

Чтобы заставить Мангуст использовать определенное имя коллекции, передать его в качестве третьего параметра в вашем model вызова:

var Illness = mongoose.model('illnesss', illnessSchema, 'illnesss'); 
Смежные вопросы