Я столкнулся с проблемой при разработке REST api whit mon goose, mongoAtlas и Express. js Проблема заключается в слишком длинном запросе (никогда не заканчивается), я пробовал некоторые решения из net но каждый раз у меня возникает одна и та же проблема.
Я могу подключиться к атласу без ошибок. Но запросы никогда не заканчиваются sh, это работа. Это каждый запрос (GET, POST, PUT / PATCH, DELETE).
Моя схема:
const mongoose = require('Mongoose');
const countrySchema = new mongoose.Schema({
_id: {
type: mongoose.Schema.Types.ObjectId,
required: true
},
country: {
type: String,
required: true
},
alfa2: {
type: String,
required: true
}
});
const Country = mongoose.model("Country", countrySchema);
module.exports = Country;
Мой индекс. js (основной файл):
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
require('./db/db');
const countryService = require('./api/countryService');
const cityService = require('./api/cityService');
const deliveryService = require('./api/deliveryService');
const parcelService = require('./api/parcelService')
const recipientService = require('./api/recipientService');
const regionService = require('./api/regionService');
const userService = require('./api/userService');
const zipCodeService = require('./api/zipCodeService');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use('/api/cities', cityService.route);
app.use('/api/countries', countryService.route);
app.use('/api/deliveries', deliveryService.route);
app.use('/api/parcels', parcelService.route);
app.use('/api/recipients', recipientService.route);
app.use('/api/regions', regionService.route);
app.use('/api/users', userService.route);
app.use('/api/zipCodes', zipCodeService.route);
app.get('/', (req, res) => {
res.json({
message: 'Behold The MEVN Stack!'
});
});
const port = process.env.PORT || 4000;
app.listen(port, () => {
console.log(`listening on ${port}`);
});
Мой файл подключения к БД
const mongoose = require('mongoose');
const dbURI = 'mongodb+srv://admin:xxxx@s16237-xnr9c.mongodb.net/test?retryWrites=true&w=majority';
const options = {
useNewUrlParser: true,
useUnifiedTopology: true
};
mongoose.connect(dbURI, options).then(
() => {
console.log('Database connection established!');
},
err => {
console.log('Error connecting Database instance due to: ', err);
}
);
И, наконец, мой файл API:
const express = require('express');
const router = express.Router();
const Country = require('../model/country');
const mongoose = require('mongoose');
router.get('/', (req, res, next) => {
Country.find()
.exec()
.then((docs) => {
console.log(docs);
if (docs.lenght >= 0) {
res.status(200).json(docs);
} else {
res.status(404).json({ message: "no valid entry found" });
}
})
.catch((err) => {
console.log(err);
res.status(500).json({
error: err
})
});
});
router.get('/:countryId', (req, res, next) => {
const id = req.params.countryId;
Country.findById(id)
.exec()
.then((doc) => {
console.log(doc);
if (doc) {
res.status(200).json(doc);
} else {
res.status(404).json({ message: "no valid entry found" });
}
})
.catch((err) => {
console.log(err);
res.status(500).json({ error: err });
});
});
router.post('/', (req, res, next) => {
const country = new Country({
_id: new mongoose.Types.ObjectId,
country: req.body.country,
alfa2: req.body.alfa2
});
country.save().then((result) => {
console.log(result);
res.status(201).json(result);
})
.catch((err) => {
console.log(err);
res.status(500).json({ error: err });
});
});
router.patch('/:countryId', (req, res, next) => {
const id = req.params.countryId;
const updateOps = {};
for (const ops of req.body) {
updateOps[ops.propName] = ops.value;
}
Country.update({ _id: id }, { $set: updateOps })
.exec()
.then((result) => {
console.log(result);
res.status(200).json(result);
})
.catch((err) => {
console.log(err);
res.status(500).json({ error: err });
});
});
router.delete('/:countryId', (req, res, next) => {
const id = req.params.countryId;
Country.remove({ _id: id })
.exec()
.then((result) => {
console.log(result);
res.status(200).json(result);
})
.catch((err) => {
console.log(err);
res.status(500).json({ error: err });
});
});
module.exports.route = router;
Через несколько минут у меня появилось это сообщение Не удалось получить ответ
Я хотел бы добавить, что я новичок в MongoDb, и я не совсем уверен, что я сделал неправильно. Я попытался найти похожие посты здесь но ничего не найдено