javascript - 我无法从我的 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
解决方案
推荐阅读
- c++ - 如何使用 ISpLexicon::GetWords 获取单词列表?
- python - 用“with语句”关闭psyopg2中的连接的正确方法是什么?
- c# - 如何从列表中删除生成的标签
- c++ - 无法使用构造函数为类函数赋值
- c# - 从 System.IO.Abstractions 抛出 UnauthorizedAccessException
- apache-kafka - Openwhisk - 订阅队列
- kubernetes - 根据标签更新多个 pod
- android - 如何自动化一个特定的过程,比如每天在安卓设备上打开一个网站?
- android - 如何修复条形码扫描应用程序中的错误,发出网络请求时崩溃
- ios - 如果我在 XIB 中设计了 textField,如何以编程方式更改 UItextField 的 placeHolder 文本