Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Can';t使用ReactJs MongoDB NodeJS删除项_Node.js_Mongodb_Reactjs_Mongoose_Delete Method - Fatal编程技术网

Node.js Can';t使用ReactJs MongoDB NodeJS删除项

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 }

所以我正在与NodeJS、MongoDB和ReactJS合作

我有一个任务列表,我在其中添加-(Task.create)with mongoose-到我的项目多个任务,我有一个带有按钮的表单来删除这些任务,但我不能这样做,因为我无法访问每个任务ID来删除它

这是我的服务器:

(这是错误的,“任务未定义”,但我不知道如何获取每个任务id)

这是我的(reactjs)任务组件

 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);
    }
 })
};