Не удается создать новый объект в MongoDB - PullRequest
0 голосов
/ 03 августа 2020

Я только изучаю mongodb и не могу понять, почему я не могу создать новый объект.

Я пытаюсь создать новый объект в коллекции «Чат», используя параметры для pu sh userIds в массив «users».

Я получаю следующую ошибку: «POST / api / chat / add / 5f14bb0564d9783290b54bb8 / 5f14c0992a9ef9454076d0f c 500 3.899 мс - 2494 TypeError: Chat.insert не является функцией "

Модели:

const chatSchema = new mongoose.Schema({
    users: [{
        type: String
    }]
}, {timestamps: true})

module.exports = mongoose.model("chat", chatSchema);

маршруты:

const express = require('express');
const router = express.Router();

const {loadRooms, createChat} = require ('../controllers/chat')

router.get('/chats/:userId', loadRooms);
router.post('/chat/add/:userId/:contactId', createChat);

module.exports = router;

контроллер:

exports.createChat = (req, res) => {
    Chat.insert({users: [req.params.userId, req.params.contactId]}, 
        (err, chat) => {
        if(err) {
            return res.status(400).json({
                error: errorHandler(err)
            })
        }
        res.json(chat)
    })       
}

1 Ответ

0 голосов
/ 03 августа 2020

это будет примерно так

let createdObj=new Chat({users: [req.params.userId, req.params.contactId]});
createdObj.save().then(data=>{}).catch(err=>{});

this, если вы хотите работать с моделью mon goose. если вы хотите работать с собственным API, это будет примерно так (я не уверен в синтаксисе) Chat.collection.insertOne

...