2017-11-29 4 views
1

을 호출합니다. 따라서 평균 스택 응용 프로그램에서 작업하고 있지만 단지 내 API를 제대로 가져 오지 못합니다 .. 작동하는 유일한 방법은 GET입니다! 내 게시물과 put이 작동하지 않는 것 같아서 구문이 잘못되었다고 생각하지만 인터넷에서 올바른 구문을 찾지 못했습니다.Api는 MEAN4 +

//GET 
router.get('/employees', (req, res) => { 
    connection((db) => { 
     db.collection('employees')   
      .find() 
      .toArray() 
      .then((employees) => { 
       response.data = employees; 
       res.json(response); 
      }) 
      .catch((err) => { 
       sendError(err, res); 
      }); 
    }); 
}); 

// POST 

router.post('/employees', (req, res) => { 

    const employees = { name: req.body.name, age: req.body.age , wage: req.body.wage , place: req.body.place }; 
    db.collection('employees').insert(employees, (err, result) => { 
     if (err) { 
     res.send({ 'error': 'An error has occurred' }); 
     } else { 
     res.send(result.ops[0]); 
     } 
    }); 

    }); 

//PUT 

    router.put('/employees/:id', (req, res) => { 
    const id = req.params.id; 
    const details = { '_id': new ObjectID(id) }; 
    const employee = { name: req.body.name, age: req.body.age , wage: req.body.wage , place: req.body.place }; 
    db.collection('employees').update(details, employee, (err, result) => { 
     if (err) { 
      res.send({'error':'An error has occurred'}); 
     } else { 
      res.send(employee); 
     } 
    }); 
    }); 
+1

에 정의되어 있지 않습니다 설립 데이터베이스에 연결을 해달라고 방법도 당신이 그 두 가지 방법을 시도 할 때 어떤 반응을 얻는가 –

+0

당신이 코드에서 누락 된 코드가 없으면 우리가 볼 수없는 파일의 상단에 db가 정의되어 있지 않은 것처럼 보입니다 –

+0

시체에서 무엇을 의미합니까? 그 req? 그리고 우편 배달부에서 그는 'db is defined'라고 말합니다. –

답변

0

당신의 PUT 및 POST 방법은 너무 db.collection 당신이 풋 포스트로 전송하고있는 REQ의 몸을 표시 할 수 있습니다 모두

router.post('/employees', (req, res) => { 

      const employees = { name: req.body.name, age: req.body.age , wage: req.body.wage , place: req.body.place }; 
    connection((db) => { 
      db.collection('employees').insert(employees, (err, result) => { 
       if (err) { 
       res.send({ 'error': 'An error has occurred' }); 
       } else { 
       res.send(result.ops[0]); 
       } 
      }); 
     }); 
      }); 

     //PUT 

      router.put('/employees/:id', (req, res) => { 
      const id = req.params.id; 
      const details = { '_id': new ObjectID(id) }; 
      const employee = { name: req.body.name, age: req.body.age , wage: req.body.wage , place: req.body.place }; 
      connection((db) => { 
      db.collection('employees').update(details, employee, (err, result) => { 
       if (err) { 
        res.send({'error':'An error has occurred'}); 
       } else { 
        res.send(employee); 
       } 
      }); 
    }); 
      }); 
+0

예, 노드를 다시 시작하는 것을 잊어 버렸습니다. - ' 시간을 내 주셔서 감사합니다! 고정되어 있습니다 :) –

+0

아무런 문제가 없습니다. 기꺼이 도와 드리겠습니다. 감사의 말로 답을 표시하십시오. –