2017-06-22 25 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的方式。導入數據的方式有錯嗎? –

相關問題