#node.js #mongodb #mongoose #mongodb-atlas
#node.js #mongodb #мангуст #mongodb-atlas
Вопрос:
я создал пользовательскую модель, зарегистрировал и зарегистрировал маршруты входа с аутентификацией. Atlas Mongodb создал новую коллекцию. Я могу зарегистрировать post в db и войти в систему, так что все работает нормально.
Позже я добавил rope model и crud маршруты, я могу получить доступ к get route, но когда я пытаюсь опубликовать новую rope в db, возникает ошибка, и новая коллекция не добавляется в atlas MongoDB. я не могу понять, почему.
веревочная модель Rope.js:
const mongoose = require('mongoose')
const ropeSchema = new mongoose.Schema({
name:{
type: String,
required: true,
},
description:{
type: String,
required: true,
}
})
module.exports = mongoose.model('Rope', ropeSchema)
файл маршрутов ropes.js:
const router = require('express').Router();
const Rope = require('../model/Rope')
router.post('/', async (req, res) => {
//create a new user
const rope = new Rope({
name: req.body.name,
description: req.body.description
});
try {
await rope.save();
res.json(rope);
} catch (err) {
res.status(500 ).send(err);
}
});
module.exports = router;
index.js файл:
const mongoose = require('mongoose')
const authRoute = require('./routes/auth');
const ropesRoute = require('./routes/ropes')
const bodyparser = require('body-parser')
app.use(bodyparser.json());
dotenv.config()
mongoose.connect(process.env.DB_CONNECT, {
useNewUrlParser: true,
useUnifiedTopology: true
}, () => console.log('connected to db'))
app.use(express.json())
app.use('/api/user', authRoute);
app.use('/api/ropes', ropesRoute)
app.listen(3000, () => console.log('up and running'))
Комментарии:
1. Проверьте заголовок запроса, в заголовке должно быть application / json
Ответ №1:
Возможно, вам потребуется опубликовать сообщение об ошибке, чтобы выяснить, в чем проблема.
попробуйте это.
//....
try{
const newRope = await rope.save();
res.status(201).json(newRope);
} catch (err){
res.status(500).send(err);
}
Комментарии:
1. я пробовал, но все равно получаю ошибку 500 empty array
Ответ №2:
Проблема заключалась в том, что Atlas Mongodb не разрешил моему IP-адресу отправлять сообщения, но я внес его в белый список.
Итак, я попал в белый список отовсюду, и теперь я могу публиковать.