2015-10-05 20 views
8

हटा नहीं सकता है, ठीक है, मैं MEAN मशीन पुस्तक पढ़ रहा हूं और इसके उदाहरणों का पालन कर रहा हूं। मैं यह पता लगाने की कोशिश कर रहा हूं कि मेरे कोड में क्या गलत है, इसलिए यह कोई डेली अनुरोध नहीं करेगा। प्राप्त करें, पुट और पोस्ट काम करना चाहिए।एक्सप्रेस राउटर सीआरयूडी एपीआई।

मैं अपने server.js पर इस कोड है:

app.all('*', function(req, res, next) { 
    res.header('Access-Control-Allow-Origin', '*'); 
    res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS'); 
    res.header('Access-Control-Allow-Headers', 'X-Requested-With, content-type, Authorization'); 
    next(); 
}); 

var apiRouter = express.Router(); 

apiRouter.route('/users/:user_id') 
.get(function (req, res) { 
    User.findById(req.params.user_id, function (err, user) { 
     if (err) res.send (err); 
     res.json(user); 
    }); 
}) 

.put(function (req, res) { 
    User.findById(req.params.user_id, function (err, user) { 
     if (err) res.send(err); 

     if (req.body.name) user.name = req.body.name; 
     if (req.body.username) user.username = req.body.username; 
     if (req.body.password) user.password = req.body.password; 

     user.save(function (err){ 
      if (err) send (err); 
      res.json({message: 'User updated'}); 
    }); 
}) 

.delete(function (req, res) { 
    User.remove({ 
     _id: req.params.user_id 
    }, function (err, user) { 
     if (err) return res.send(err); 
     res.json({ message: 'Deleted' }); 
    }); 
}); 

});

मैं उन का एक सेट है मापांक MongoDB डेटाबेस और, जब मैं स्थानीय होस्ट के साथ डाकिया इस्तेमाल करने की कोशिश: 8080/API/उपयोगकर्ताओं/5610e5576d827dc41fb8e6e, डाकिया का कहना है

Cannot DELETE /api/users/5610e5576d827dc41fb8e6e 

जबकि मोर्गन के साथ मेरी नोड सर्वर का कहना है

DELETE /api/users/5610e5576d827dc41fb8e6e 404 

मुझे 404 क्यों मिल रहा है? मैं क्या गलत कर रहा हूं?

Full code

उत्तर

18

आप गलत जगह पर put() के समापन कोष्ठक रखा है।

यह उचित खरोज के बाद अपने कोड है:: तो आप put() रूटर के अंदर अपने delete रूटर तय कर रहे हैं

.put(function (req, res) { 
    User.findById(req.params.user_id, function (err, user) { 
     if (err) res.send(err); 

     if (req.body.name) user.name = req.body.name; 
     if (req.body.username) user.username = req.body.username; 
     if (req.body.password) user.password = req.body.password; 

     user.save(function (err){ 
      if (err) send (err); 
      res.json({message: 'User updated'}); 
     }); 
    }) 

    .delete(function (req, res) {  // <===== defined inside 'put', 
     User.remove({ 
      _id: req.params.user_id 
     }, function (err, user) { 
      if (err) return res.send(err); 
      res.json({ message: 'Deleted' }); 
     }); 
    }); 
}) 

तो, सिर्फ put रूटर कॉलबैक

+3

होली मौली के बाहर delete रूटर ले जाते हैं, तुमने मेरी समस्या हल की! मैंने इतनी देर तक इस समस्या से लड़ लिया है, मुझे विश्वास नहीं है कि यह सिर्फ एक बंद ब्रैकेट था! आपका बहुत बहुत धन्यवाद! – Rodmentou

संबंधित मुद्दे