NodeJS Mongoose无法正常工作

时间:2017-11-13 21:14:17

标签: node.js mongodb mongoose

我遇到NodeJS和Mongoose的问题。与DB的连接代表,但我无法从那里获得任何数据。我也可以连接到/ api / buckets而没有任何问题。这是我的代码:

app.js

Movie_name_1           9.50
Movie_name_2           9.25
Movie_name_3           8.25
Movie_name_4           7

和bucket.js:

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');

Bucket = require('./models/bucket');

// Connect to Mongoose
mongoose.connect('mongodb://localhost/worldbucket', function (err) {
    if (err) throw err;
    console.log('Successfully connected');
});


app.get('/', function (req, res) {
    res.send('Please use sth other');
});

app.get('/api/buckets', function (req, res) {
    Bucket.getBuckets(function (err, buckets) {
        console.log("funkt");
        if (err) {
            throw err;
        }
        res.json(buckets);
    });
});

app.listen(3000);
console.log('Running on port 3000');

我希望你能帮助我。

提前致谢

2 个答案:

答案 0 :(得分:1)

我不确定您使用的是什么版本的猫鼬,但是来自他们的文档

http://mongoosejs.com/docs/queries.html

// With a JSON doc
  Person
      .find({
        occupation: /host/
      })
      .limit(10)
      .sort({ occupation: -1 })
      .select({ name: 1, occupation: 1 })
      .exec(callback);

所以在你的情况下应该是

Bucket.find({}).limit(limit).exec(callback);

希望这有帮助。

答案 1 :(得分:0)

在mongo中检查您的收藏集的名称 - 它应该被称为buckets而不是bucket。它需要是复数。除了您的代码有效之外,我已对其进行了测试。

> db
worldbucket
> db.buckets.insert({"creator":"me","text":"hello world"})
WriteResult({ "nInserted" : 1 })
> db.buckets.find()
{ "_id" : ObjectId("5a0a154a29642fd7a970420e"), "creator" : "me", "text" : "hello world" }


$ curl http://localhost:3000/api/buckets
[{"_id":"5a0a154a29642fd7a970420e","creator":"me","text":"hello world"}]

此主题还有另一个SO主题:Why does mongoose always add an s to the end of my collection name