2016-03-07 3 views
2

Это моя первая попытка, это очень просто, я просто хочу найти все документы с предоставленным параметром (вставка: «Вставка 1») и тех, кто находит все документы с предоставленным собственность (поставки: «Чистка»). Затем обновите все эти документы из окна: «Вставка 1» в поле: «Вставка 2». В результате все чистящие средства будут перенесены во вставку 2. Таким образом, документ будет переведен из {box: «Вставка 1», поставляется: «Очистка»} до {box: «Box 2», поставляется: «Очистка»}findOneAndUpdate Mongoose w/PUT REST API

Ошибка

"Cannot PUT /updatebox/Box%201/Cleaning" //in Postman 
"404 Not Found" //in Postman log 

Схема & Модель

var boxSchema = new mongoose.Schema({ 
    box: String, 
    supplies: String 
}); 

var boxModel = mongoose.model('boxModel', boxSchema, 'boxList'); 

API

app.put('updatebox/:box/:supplies', function (req, res) { 
    var boxReq = req.params.box; 
    var suppliesReq = req.params.supplies; 
    boxModel 
     .find({box: boxReq}) 
     .findOneAndUpdate({supplies: suppliesReq}, { 
      $set: { 
       box: "Box 2" 
      } 
     }, {new: true}, function (err, doc) { 
      if (err) { 
       console.log("Something wrong when updating data!"); 
      } 
      res.json(doc); 
     }); 
}) 

ответ

2

Вы пропустили предыдущую '/' до фактического маршрута

Эта строка в вашем API

app.put('updatebox/:box/:supplies', function (req, res) {

должно быть действительно

app.put('/updatebox/:box/:supplies', function (req, res) {

+0

Ah I должен знать лучше, я продолжаю это делать! Спасибо! – muninn9

+0

@ muninn9 np, если бы это был ответ, пожалуйста, отметьте его как таковой, чтобы будущие посетители этого вопроса знали, что это действительно решило вашу проблему. – peteb

+0

Нет проблем, мне пришлось подождать 4 минуты, прежде чем принимать ответ :) – muninn9

Смежные вопросы