Не могу понять, почему сервер возвращает пустую строку. Запустив сервер на локальном порте 3000, имя базы данных - «коктейли», имя коллекции - «Коктейли». Сервер подключается к базе данных нормально.
сервер:
const express = require("express");
const app = express();
const bodyParser = require("body-parser");
const cors = require("cors");
const mongoose = require("mongoose");
const PORT = process.env.PORT || 3000;
let Cocktail = require("./schemas/cocktail.model");
const router = express.Router();
const URL =
"mongodb+srv://owner:<password>@cluster0-i3tky.mongodb.net/test?retryWrites=true&w=majority";
app.use(cors());
app.use(bodyParser.json());
mongoose
.connect(URL, { useUnifiedTopology: true, useNewUrlParser: true })
.then(console.log("MongoDB database connection has been established."))
.catch(err => {
console.log(err);
});
router.get("/", (req, res) => {
Cocktail.find({}, (err, cocktails) => {
if (err) {
console.log(err);
} else {
res.json(cocktails);
}
});
});
app.use("/", router);
app.listen(PORT, () => {
console.log("Server is running on Port: " + PORT);
});
однако, заменяя функцию get на router.get('/', (req,res)=> res.json({msg: 'test works'})
- почтальон возвращает тестовое сообщение.
модель mongoose:
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
let Cocktail = new Schema({
name: {
type: String
},
ingredients: {
type: Array
},
measurements: {
type: Array
}
});
module.exports = mongoose.model("Cocktail", Cocktail, "cocktails");
Почему экспресс-сервер возвращает пустой массив?