我遇到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');
我希望你能帮助我。
提前致谢
答案 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