How to define Mongoose Schema for delete method
I am not able to delete items of a list of MongoDB.
Unfortunately, when axios.delete
method is called in ExpensesListItem.tsx
, the item of MongoDB list is not deleted (no error message gets printed to the console).
What is wrong with the code (maybe mongoose schema)?
ExpensesListItem.tsx
import React from "react";
import { IconButton, ListItem, ListItemSecondaryAction, ListItemText } from "@material-ui/core";
import DeleteIcon from '@material-ui/icons/Delete';
import { ExpenseAndAmountObject } from '../ExpenseAndAmountObject';
import axios from 'axios';
interface Props {
expenseTitle: string;
expenseAmount: string;
currencySymbol: string;
item: ExpenseAndAmountObject;
expenseAndAmountList: Array<ExpenseAndAmountObject>;
setExpenseAndAmountList: (value: Array<ExpenseAndAmountObject>) => void;
}
const ExpensesListItem: React.FC<Props> = (
{
expenseTitle,
expenseAmount,
currencySymbol,
item,
expenseAndAmountList,
setExpenseAndAmountList
}: Props) => {
const DeleteListItem = (toBeDeletedItemId: any) => {
setExpenseAndAmountList(expenseAndAmountList.filter(el => el._id !== toBeDeletedItemId));
axios.delete('http://localhost:4000/app/expenseslist', { data: { itemId: toBeDeletedItemId } )
.catch(function (error) {
console.log(error);
});
}
return (
<>
<ListItem className="list-item">
<ListItemText primary={expenseTitle} secondary={expenseAmount + currencySymbol} />
<ListItemSecondaryAction>
<IconButton onClick={()=>DeleteListItem(item._id)} edge="end">
<DeleteIcon className="delete-btn" />
</IconButton>
</ListItemSecondaryAction>
</ListItem>
</>
);
}
export default ExpensesListItem;
routes.js
router.delete('/expenseslist', (request, response) => {
let itemId = request.body._id;
ExpenseAndAmountTemplate.findByIdAndRemove(itemId, function(err){
if(err){
response.send("/Could not delete the item...");
} else {
response.send("/Expenses and amount item was deleted succesfully...");
}
});
});
ExpenseAndAmountModel.js
const mongoose = require('mongoose');
const ExpenseAndAmountTemplate = new mongoose.Schema({
_id: {
type:String,
required:false
},
expenseTitle: {
type:String,
required:true
},
expenseAmount: {
type:String,
required:true
}
});
module.exports = mongoose.model('ExpenseAndAmountData', ExpenseAndAmountTemplate);
from Recent Questions - Stack Overflow https://ift.tt/2U0zVGN
https://ift.tt/eA8V8J
Comments
Post a Comment