2017-11-29 2 views
1

So arbeite ich in einer gemeinen Stapel-Anwendung, aber ich bekomme einfach nicht meine API .. Das einzige, was funktioniert, ist das GET! Mein Post und Put scheint nicht zu funktionieren, ich denke, ich habe meine Syntax falsch, aber ich finde einfach nicht die richtige im Internet.Api Anrufe 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

können Sie den Körper des erf zeigen Sie mit der Put-und Post sind zu senden Methoden auch welche Antwort erhalten Sie, wenn Sie diese beiden Methoden versuchen –

+0

sieht auch aus wie Sie nicht db in Post definiert haben und setzen, es sei denn, Ihr Code fehlt Importe an der Spitze der Datei, die wir nicht sehen können –

+0

Was meinst du mit dem Körper aus das Erfordernis? und im Postboten sagt er, dass "db nicht definiert ist" –

Antwort

0

Ihre PUT und POST-Methoden nicht haben Verbindungen zur Datenbank hergestellt, so db.collection in beiden

undefiniert ist
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

Ja danke, ich habe vergessen, Knoten neu zu starten - ' Danke, dass Sie sich die Zeit nehmen !! Es ist behoben :) –

+0

kein Problem, froh, ich könnte helfen. Bitte markieren Sie einfach die gelöste Frage. –