node.js - 在 Node.js 的 app.delete 函数中使用 deleteOne 时出错
问题描述
** 尝试使用 app.delete 并尝试使用 delete one 从 mondo db 中删除文档...它不断抛出错误。如何解决这个错误?** ``` require('dotenv').config() const express = require('express') const app = express() const PORT = process.env.PORT || 5001 const connectDB = require('./config/db') const errorHandler = require('./middleware/error') const Product =require('./models/product') const cors = require('cors')
// Connect DB
connectDB()
// Middleware
app.use(cors())
app.use(express.json())
app.use('/auth', require('./routes/authRoutes'))
app.use('/admin', require('./routes/adminRoutes'))
app.use('/customer', require('./routes/customerRoutes'))
app.use('/staff', require('./routes/staffMemberRoutes'))
// error handler - should be *last* piece of middleware
app.use(errorHandler)
app.get('/all-products', (req, res) => {
Product.find({}, (error, posts) => {
if(error) {
res.json({error: 'Unable to fetch products!'})
} else {
res.json(posts)
}
})
})
app.post ('/add-products',(req,res) =>{
console.log("add-products has been fired")
const imageurl = req.body.imageurl
const title = req.body.title
const description = req.body.description
const rate = req.body.rate
const category = req.body.category
const subcategory = req.body.subcategory
let product = new Product({
imageurl: imageurl,
title: title,
description: description,
rate: rate,
category: category,
subcategory: subcategory,
})
product.save((error) => {
if(error) {
res.json({error: 'Unable to save the product!'})
} else {
res.json({success: true, message: 'New product Saved'})
}
})
})
app.delete('/product/:productId', (req, res) => {
const productId = req.params.productId
Product.deleteOne({
_id: productId
}, (error, result) => {
if(error) {
res.json({error: 'Unable to delete product'})
} else {
res.json({success: true, message: 'Product deleted successfully!'})
}
})
})
app.put('/update-product/:productId', (req, res) => {
const productId = req.params.productId
const imageurl = req.body.imageurl
const title = req.body.title
const description = req.body.description
const rate = req.body.rate
const category = req.body.category
const subcategory = req.body.subcategory
const updatedProduct = {
imageurl: imageurl,
title: title,
description: description,
rate: rate,
category: category,
subcategory: subcategory,
}
Product.findByIdAndUpdate(productId, updatedProduct, (error, result) => {
if(error) {
res.json({error: 'Unable to updated the Product'})
} else {
res.json({success: true, message: 'Product updated successfully!'})
}
})
})
const server = app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`)
})
// makes giant server errors concise and simple to read
process.on('unhandledRejection', (err, promise) => {
console.log(`Logged Error: ${err}`)
server.close(() => process.exit(1))
})```
解决方案
if(error) {
res.json({error: 'Unable to delete product'})
}
在这一行中,将 res.json 替换为:
res.json({error})
然后在这里评论输出(控制台上的错误消息)
推荐阅读
- regex - 正则表达式返回括号之间有 1 个或多个句点的文本
- android - 除非用户使用 100VH 滚动,否则 Android Chrome 上的 URL 栏会隐藏全高内容
- python-3.x - 在 python 3 中编辑列表的元素
- hive - Hive——改变分区格式
- rust - 在构建脚本中获取当前版本的方法?
- zurb-foundation - Zurb Foundation 5 Reveal 滚动内容?
- swift - 在 Swift 4 中将视频旋转 90 度
- java - 使用 Jython 将参数从 Java 传递到 Python
- javascript - Javascript 中的“切换”CSS 会减慢渲染速度吗?
- javascript - 将 mysql docker 容器连接到外部应用程序