首页 > 解决方案 > 我无法从我的 MongoDB 中删除任何内容

问题描述

我尝试在 node.js+express 上创建我的服务器并得到错误:

Cannot use (or request) retryable writes with limit=0

我尝试在谷歌中找到答案,并在连接字符串中找到了我需要指定的内容,retryWrites=true 但我的连接字符串中有它。你能告诉我如何修复这个错误吗?我的代码:

const express = require('express')
const cors = require('cors')
const bodyParser = require("body-parser")
const morgan = require('morgan')
const mongoose = require('mongoose')

const app = express()
const productRoutes = require('./routes/products')
const ordersRoutes = require('./routes/orders')

mongoose.connect('mongodb+srv://admin:admin@rest-shop-e3hfo.mongodb.net/test?retryWrites=true')

app.use(morgan('combined'))
app.use(bodyParser.urlencoded({extended : false}))
app.use(bodyParser.json())
app.use(cors())
//headers
app.use((req,res,next) => {
    res.header('Access-Control-Allow-Origin','*')
    res.header('Access-Control-Allow-Headers','Origin, X-Requested-With, Content-Type, Accept, Authorization')
    if(req.method === 'OPTIONS'){
        res.header('Access-Control-Allow-Methods', 'PUT, POST, PATCH, DELETE , GET')
        return res.status(200).json({})
    }
    next()
})
//--headers
app.use('/products',productRoutes)
app.use('/orders',ordersRoutes)

app.use((req,res,next) => {
    const error = new Error('Not found')
    error.status = 404
    next(error)
})
app.use((error,req,res,next) => {
    res.status(error.status || 500)
    res.json({
        error:{
            message:error.message
        }
    })
})
app.listen(process.env.PORT || 8081 )

和模块

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

const Order = require('../models/orders')
const Product = require('../models/products')

router.get('/', (req, res, next) => {
    Order.find()
        .select('_id product quantity')
        .then(docs => {
            res.status(200).json({
                count: docs.length,
                orders: docs
            })
        })
        .catch(err => {
            error: err
        })
})

router.post('/', (req, res, next) => {
    Product.findById(req.body.productId)
        .then(product => {
            if (!product){
                return res.status(404).json({
                    message: 'Product not found'
                })
            }
            const order = new Order({
                _id: mongoose.Types.ObjectId(),
                quantity: req.body.quantity,
                product: req.body.productId
            })
            return order.save()
        })
        .then(result => {
            res.status(201).json({
                message: 'Order stored',
                createdOrder: result

            })
        })
        .catch(err => {
            console.log(err)
            res.status(500).json({
                error: err
            })
        })
})

router.delete('/:orderId', (req, res, next) => {
    Order.remove({_id: req.params.orderId})
    .then(order => {
        res.status(200).json({
            message: 'Order deleted'
        })
    })
    .catch(err => {
        console.log(err)
        res.status(500).json({
            error: err
        })
    })
})

router.get('/:orderId', (req, res, next) => {
    Order.findById(req.params.orderId)
    .then(order => {
        res.status(200).json({
            order: order
        })
    })
    .catch(err => {
        console.log(err)
        res.status(500).json({
            error: err
        })
    })
})

module.exports = router 

标签: javascriptnode.jsmongodbexpress

解决方案


推荐阅读