Rest api GET调用不会从mongoDB返回任何值

时间:2017-07-10 09:53:59

标签: node.js mongodb rest express mongoose

我正在尝试使用以下代码在我的mongoDB本地数据库中为我的类型执行GET请求:

enter image description here

app.js

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
Genre = require('./models/genre.js');
Application = require('./models/apps.js');

// Connect to Mongoose
mongoose.createConnection('mongodb://localhost/appstore');
var db = mongoose.connection;

// Root Call
app.get('/', function(request, response) {
  response.send('Please use /api/apps or /api/genres/');
});

// Get genres
app.get('/api/genres', function(request, response) {
  Genre.getGenres(function(error, genres){
    if(error){
      throw error;
    }
    response.json(genres);
  });
});

// Get apps
app.get('/api/apps', function(request, response) {
  Application.getApplications(function(error, apps){
    if(error){
      throw error;
    }
    response.json(apps);
  });
});


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

在这个文件中,我正在创建将在mongoDB中搜索所有类型的函数。不幸的是,它不会这样做并让我回头:

localhost没有发送任何数据。有时只是空行。

奇怪的是它适用于根调用(/)并将输出:

请使用/ api / apps或/ api / genres /

genre.js

var mongoose = require('mongoose');

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

// this is now accessible from anywhere else
var Genre = module.exports = mongoose.model('genre', genreSchema);

// Get Genres
module.exports.getGenres = function(callback, limit){
  Genre.find(callback).limit(limit);
}

我非常感谢任何帮助,因为这是我想要构建的第一个简单的REST api。提前谢谢!

1 个答案:

答案 0 :(得分:0)

该解决方案显然使用了已弃用的功能:

mongoose.connect( '的mongodb://本地主机/ AppStore的');

代替:

mongoose.createConnection( '的mongodb://本地主机:27017 / AppStore的');