2017-06-22 79 views
0

我正在从mongodb获取预制数据的休息api,但由于某种原因,它没有获取已经在MongoDB中的数据。当我输入localhost:3000/film时,它根本不返回任何数据。它返回[]就是这样。我检查了MongoDB,数据已经存在。rest api没有返回来自mongodb的数据

我使用的命令是:

蒙戈

使用FilmTest

显示集合

db.Film.find()

它返回所有在数据它在JSON格式,所以测试数据已经存在,但其余的API不会返回它时,我看在/电影时启动节点server.js

server.js

var express = require('express'); 
var mongoose = require('mongoose'); 
var cors = require('cors'); 

mongoose.connect('mongodb://localhost:27017/FilmTest') 

var filmSchema = ({ 
    categoryId: String, 
    genre: String, 
    title: String, 
    releaseDate: String, 
    rating: Number, 
    director: String, 
    cast: String, 
    production: String, 
    description: String, 
    plot: String, 
    opinion: String, 
    isSpecial: String, 
    imageS: String, 
    imageL: String 
}); 

var Film = mongoose.model('Film', filmSchema, 'film') 

var app = express() 
app.use(cors()); 



app.get('/film', function(req, res) { 
    Film.find(function (err, doc) { 
     res.send(doc); 
    }) 
}) 

app.listen(3000); 

回答

1

试试这个:

var express = require('express'); 
var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var cors = require('cors'); 

mongoose.connect('mongodb://localhost:27017/FilmTest') 

var filmSchema = new Schema({ 
    categoryId: String, 
    genre: String, 
    title: String, 
    releaseDate: String, 
    rating: Number, 
    director: String, 
    cast: String, 
    production: String, 
    description: String, 
    plot: String, 
    opinion: String, 
    isSpecial: String, 
    imageS: String, 
    imageL: String 
}); 

var Film = mongoose.model('Film', filmSchema, 'film') 

var app = express() 
app.use(cors()); 

app.get('/film', function(req, res) { 
    Film.find({}, function (err, doc) { 
     res.send(doc); 
    }) 
}) 

app.listen(3000); 
+0

它没有黯然工作。 –

+0

我已经更新了我的答案,将模式定义为“新模式”并在顶部声明模式。希望这现在应该工作。对不起,在我的手机上,目前无法测试。 –

+0

mongoimport --db FilmTest --collection电影--jsonArray data.js这是我将数据导入到mongodb的方式。导入数据的方式有错吗? –