Node.js Can';t使用ReactJs MongoDB NodeJS删除项
所以我正在与NodeJS、MongoDB和ReactJS合作 我有一个任务列表,我在其中添加-(Task.create)with mongoose-到我的项目多个任务,我有一个带有按钮的表单来删除这些任务,但我不能这样做,因为我无法访问每个任务ID来删除它 这是我的服务器: (这是错误的,“任务未定义”,但我不知道如何获取每个任务id) 这是我的(reactjs)任务组件Node.js Can';t使用ReactJs MongoDB NodeJS删除项,node.js,mongodb,reactjs,mongoose,delete-method,Node.js,Mongodb,Reactjs,Mongoose,Delete Method,所以我正在与NodeJS、MongoDB和ReactJS合作 我有一个任务列表,我在其中添加-(Task.create)with mongoose-到我的项目多个任务,我有一个带有按钮的表单来删除这些任务,但我不能这样做,因为我无法访问每个任务ID来删除它 这是我的服务器: (这是错误的,“任务未定义”,但我不知道如何获取每个任务id) 这是我的(reactjs)任务组件 import React, { Component } from 'react'; import { NavLink }
import React, { Component } from 'react';
import { NavLink } from 'react-router-dom';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faTrashAlt, faEdit } from '@fortawesome/free-solid-svg-icons'
import './Tasks.css';
class Tasks extends Component {
constructor(props) {
super(props);
this.state = {
projectId: props._id,
tasks: []
};
}
componentDidMount() {
fetch(`/dashboard/project/${this.props.projectId}/tasks`)
.then(response => {
return response.json()
}).then(task => {
this.setState({
tasks: task.tasks
})
}).catch(error => console.error('Error:', error));
}
render() {
const { tasks } = this.state;
return (
<div>
<ul className="task-list">
{tasks.map(task =>
<li key={task._id}>{task.tasktitle}
<div>
<form method='POST' action={`/dashboard/project/${this.props.projectId}/tasks/delete?_method=DELETE`}>
<button className="btn button--tasks" >
<FontAwesomeIcon icon={faTrashAlt} />
</button>
</form>
</div>
</li>
)}
</ul>
</div>
);
}
}
export default Tasks;
import React,{Component}来自'React';
从'react router dom'导入{NavLink};
从“@fortawesome/react fontawesome”导入{FontAwesomeIcon}
从“@fortsawome/free solid svg icons”导入{faTrashAlt,faEdit}”
导入“/Tasks.css”;
类任务扩展组件{
建造师(道具){
超级(道具);
此.state={
项目D:道具,
任务:[]
};
}
componentDidMount(){
获取(`/dashboard/project/${this.props.projectId}/tasks`)
。然后(响应=>{
返回response.json()
}).然后(任务=>{
这是我的国家({
任务:task.tasks
})
}).catch(error=>console.error('error:',error));
}
render(){
const{tasks}=this.state;
返回(
{tasks.map(task=>
- {task.tasktTitle}
)}
);
}
}
导出默认任务;
这是我的任务列表的图像,我可以在其中添加任务列表,但不能删除任务列表,因为我无法通过单击其自己的垃圾箱按钮访问每个任务ID
希望你能帮助我。非常感谢你 您需要按原样传递任务id
findbyianddelete(taskId)
,这与findbyianddelete({u-id:task.\u-id})相同。
像下面这样做。在执行.map时,将
任务作为查询参数传递到如下路径
{tasks.map(task =>
<li key={task._id}>{task.tasktitle}
<div>
<form method='POST' action={`/dashboard/project/${this.props.projectId}/tasks/delete?_method=DELETE&taskId=${task._id}`}>
<button className="btn button--tasks" >
<FontAwesomeIcon icon={faTrashAlt} />
</button>
</form>
</div>
</li>
)}
exports.delete_task= (req, res) => {
哇,谢谢!但是现在我收到一个“cannotpost/dashboard/project/5babe3bba94ea38bfbccd7f/tasks/delete”,我的本地主机是这样的:。。也许我在路由或其他方面有问题?我可以知道你从哪里得到这个错误吗?我是指前端还是后端?不确定表单操作如何工作可能是你需要指定路径以及localhost:5000/操作中的仪表板我的错,我丢失了一个字母。非常感谢你的帮助!!
Task.findByIdAndDelete(task._id, (err) =>{
if(err){
console.log(err);
}
})
};
{tasks.map(task =>
<li key={task._id}>{task.tasktitle}
<div>
<form method='POST' action={`/dashboard/project/${this.props.projectId}/tasks/delete?_method=DELETE&taskId=${task._id}`}>
<button className="btn button--tasks" >
<FontAwesomeIcon icon={faTrashAlt} />
</button>
</form>
</div>
</li>
)}
exports.delete_task= (req, res) => {
Task.findByIdAndDelete({tasks: req.query.taskId}, (err) =>{
if(err){
console.log(err);
}
})
};