не удается перенаправить post в Atlas MongoDB

#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-адресу отправлять сообщения, но я внес его в белый список.

Итак, я попал в белый список отовсюду, и теперь я могу публиковать.