2014-10-04 49 views
0

荫与节点的API工作/快递/ 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。

但/ API /疾病航线只返回:[]

数据库:

这事呢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 /疾病调用找到,因为他应该将所有这些文件全部取出。

我希望有人能帮助我。

+0

的'illnesss'型号名称可能会导致映射的'集合名称因为“疾病”不是一个适当的复数。 – JohnnyHK 2014-10-04 15:08:17

+0

哦,我需要英语吗? 它的工作,非常感谢,从来没有想过这将是一个这样的问题 – thacorum 2014-10-04 15:10:56

回答

0

Mongoose将您的模型名称复数化以创建集合的名称,因为illnesss不是适当的复数,因此可能会使用集合名称illnessses

要强制猫鼬使用特定的集合名称,它传递的第三个参数在model电话:

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