当我尝试连接 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/