node.js - 来自 mongoDB 的空 [] 响应是 Node.js express get 函数的结果?

标签 node.js mongoose

当我尝试连接 localhost:3000/api/books 时,我得到一个空的 [ ] json,但是如您所见,我用 genre.js 做了同样的事情。 mongoDB 收集图片中给出的流派和书籍。提前致谢。

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

// importing modules
Book = require('./models/book');
genre = require('./models/genre');
// connect to Mongoose

mongoose.connect('mongodb://localhost/bookstore');
var db = mongoose.connection;

app.get('/',function(req, res){
        res.send('Please use /api/books or /api/genres');


});

//getting genres
app.get ('/api/genres',function(req,res){   
    genre.getGenres(function(err,genres){
    if(err){
        throw err;
    }
    res.json(genres);
    })
});


app.get ('/api/books',function(req,res){   
    Book.getBooks(function(err,books){
    if(err){
        throw err;
    }
    res.json(books);
    })
});



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

这是我的 book.js 文件

var mongoose = require('mongoose');


var bookSchema = mongoose.Schema({
    title:{
            type:String,
            required:true
    },
    genre:{
            type:String,
            required:true

    },
    description:{
            type:String
    },
    author:{
            type:String
    },
    publisher:{
            type:String

    },
    pages:{
        type:String
    },
    image_url:{
        type:String
    },
    buy_url:{
        type:String
    },
    create_date:{
        type:Date,
        default:Date.now

    }

});

var Book = module.exports = mongoose.model('Book',bookSchema);

// Get books

module.exports.getBooks = function(callBack,limit){
Book.find(callBack).limit(limit);
};

这是我的 genre.js 文件

var mongoose = require('mongoose');

// Genre Schema

var genreSchema = mongoose.Schema({
    name:{
            type:String,
            required:true
    },
    create_date:{
        type:Date,
        default:Date.now

    }

});

var genre = module.exports = mongoose.model('genre',genreSchema);

// Get genres

module.exports.getGenres = function(callBack,limit){
genre.find(callBack).limit(limit);
};

mongoDB 集合和 json 内容

collections in mongoDB content of the collections in JSON format

最佳答案

尝试重写路由方法并将您的集合名称添加到模型中。 假设您的收藏名称为 Book。它应该看起来像这样:

var Book = module.exports = mongoose.model('Book', bookSchema, 'Book');

关于node.js - 来自 mongoDB 的空 [] 响应是 Node.js express get 函数的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44410272/

相关文章:

node.js - 如何在 Passport.js 中定义多个 isAuthenticated 函数?

mysql - 如何将 ACL Node js 角色与数据库 MySQL 中的用户连接(sequelize)

node.js - Mongoose 节省

encryption - 如何使用node.js加密字符串?

node.js - 在 node.js 中执行多个 redis 查询的更简洁的方法

javascript - 填充对象 Mongoose 的嵌套数组

node.js - 在 Mongoose 中使用动态字段

javascript - 尝试从函数返回字符串值并将其保存到 mongoDB 不起作用

javascript - MongoDB : how to put conditional for multiple optional value

node.js - Google App Engine Node 任务队列在完成前重试