似乎无法使用node.js显示来自mongolab的数据

时间:2015-11-01 01:26:46

标签: node.js mlab

我一直试图只显示从mongolab到nodejs的简单数据,但由于某种原因它没有显示任何内容。

var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
mongoose.connect("mongodb://db-user:pass@ds049084.mongolab.com:49084/mydb");
mongoose.model('collection',{ name:String });

router.get('/', function(req, res, next) {
  mongoose.model('collection').find({},function(err,docs){
     res.send(docs);
  });
});

我已经在mongolab的集合文档中保存了一个名称数据,这是我运行调试脚本时唯一显示的     debug = mynode:* npm start是[]

有谁知道为什么会这样?谢谢。

2 个答案:

答案 0 :(得分:0)

修正了它!男人......问题就是我在mongolab上命名集合的方式。我错过了" s"在收集结束时。一旦我删除了该集合并创建了另一个,但这一次是" s"最后,然后它奏效了。

e.g。 命名一个集合' Car'不起作用,但命名为汽车'会以某种方式工作

答案 1 :(得分:0)

由于我的代表,我无法发表评论...... 但要详细阐述..你最后需要“s”的原因是因为当你这样做时:

mongoose.model('<the schema you want to map to in your db>',<yourschema>);

“Mongoose会自动在您的数据库中查找您的模型名称的复数版本”,就像它在Mongoose文档中所说的那样..因此,如果您键入myDbSchema,它将查找myDbSchemas(注意“s”)等等为什么在你的mongolabs Db架构需要额外的“s”...让我有点困惑,但我希望这可以帮助别人! :)这篇文章对我也很有帮助。

FYI Mongoose文档:Mongoose Models Doc