NodeJS Express Пн goose вернуть пустой [] - PullRequest
1 голос
/ 28 мая 2020

Я попытался создать приложение стека MEAN, но мой API не может предоставить запрошенные данные.

сервер. js файл:

const express = require("express");
const bodyparser = require("body-parser");
const mongoose = require('mongoose');
const dotenv = require('dotenv');
dotenv.config();
const port = process.env.PORT; 
const dburi = process.env.DB_URI; 

//Routes
const volcanoesRoute = require('./api/routes/volcano.routes');

mongoose.Promise = global.Promise;

mongoose.connect(
  dburi,
  {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useFindAndModify: false,
    useCreateIndex: true,
  },
).then(
  () => {
    console.log('Connected to mongoDB');
  },
  (err) => console.log('Error connecting to mongoDB', err),
  { useNewUrlParser: true }
);


//Express app
const app = express();

app.use(bodyparser.json());
app.use(bodyparser.urlencoded({ extended: false }));
app.use('/api/vulcanoes', volcanoesRoute);
app.listen(port, () => {
  console.log(`running at port ${port}`);
});

Файл маршрутов:

const express = require('express');
const volcanoController = require('../controllers/volcanoController');
const router = express.Router();

router.get('/getallvulcanoes', volcanoController.getAllVolcanoes);

module.exports = router;

Файл контроллера:

const VolcanoSchema = require('../models/volcano.models');

const getAllVulcanoes = (req, res) => {
    VolcanoSchema.find((err, results) => {
      if (err) {
        console.log(err);
        res.status(500).json({message: err});
      } else {
        res.status(200).json(results);
      }
    });
  };

  module.exports = {getAllVolcanoes};

Файл модели

const mongoose = require('mongoose');

const VolcanoSchema = new mongoose.Schema({
    Volcano_name:{
        type: String,
    },
    Country:{
        type: String,
    },
    Type:{
        type: String,
    },
    Latitude:{
        type: Number,
    },
    Longtitude:{
        type: Number,
    },
    Elevation:{
        type: Number,
    },
});

module.exports = mongoose.model('Volcano', VolcanoSchema);

Дело в том, что у меня есть рабочий пример, но большая часть кода устарела ... но он ответ всегда дает мне это

request example

Было бы неплохо, если бы кто-то указал, что я делаю неправильно

EDIT: I переключился на postgresql для моей базы данных, надеюсь, это сработает

1 Ответ

0 голосов
/ 29 мая 2020

Вы должны исправить контроллер (VulcanoSchema.find требуется пустой объект в качестве параметра):

Файл контроллера:

const VulcanoSchema = require('../models/vulcano.models');

const getAllVulcanoes = (req, res) => {
  VulcanoSchema.find({}, (err, results) => {
    if (err) {
      console.log(err);
      res.status(500).json({message: err});
    } else {
      res.status(200).json(results);
    }
  });
};

module.exports = {getAllVulcanoes};
...