2016-04-11 54 views
0

Express ve Mongoose ile REST Api kullanarak CRUD işlemleri için bir öğretici takip ederek MEAN yığını öğrenmeye çalışıyorum. GET ve DELETE işlemlerini çalıştırabiliyorum, ancak POST ve PUT işlemlerini almıyorum çünkü gerekli istekleri vücut değerleri almıyorum. Eğer ben postacı geçmesine istek vücut değerini kullanarak json nesnenin adı parametresini kuruyorum kodundan görebileceğiniz gibi
Express İstekte bulunamıyor

router.post('/', function (req, res, next) { 
var todoObject = { 
    name: req.body.name 
}; 
Todo.create(todoObject, function (err, todo) { 
    if (err) res.send(err); 
    Todo.find(function (err, todos) { 
     if (err) res.send(err); 
     res.json(todos); 
    }); 
}); }); 

. Yeni bir belge oluşturuluyor ancak veritabanında isim değeri bilinmiyor.
Ancak, adı vermek doğrudan çalışıyor. Lütfen bana yardım et.

+0

BodyParser kullanıyor musunuz? –

+0

Evet, bodyParser kullandım. –

+0

"todoObject = req.body" yi denediniz mi, vücudunuzun tam olarak ne koymak istediğinizi içeren varsayımıyla db – buddy123

cevap

1

En basit ve güvenli yol, RAW verilerini kullanarak istemciden JSON nesnesini göndermektir.

nedenle, bu aşağıdaki adımları uygulamak için: Başlıklardaki Set uygulamaya İçerik/türü

  • /json enter image description here
  • çiğ türünü seçin ve sizin JSON nesnesi koymak Vücut enter image description here
  • Ve nihayet Kodunuz gibi olmalıdır:

    router.post('/', function (req, res, next) { 
    
        var todoObject = req.body; 
    
        Todo.create(todoObject, function (err, todo) { 
    
           if (err) res.send(err); 
           Todo.find(function (err, todos) { 
            if (err) res.send(err); 
            res.json(todos); 
           }); 
          }); 
         }); 
    
1

Bunu JSON biçiminde olan ise Başlıklardaki Content-Type: application/json kullanmak gerekir.