2012-03-28 16 views
22

Bu gece Node.JS ve Restify kullanarak basit bir API üzerinde çalışıyordum ve req.params.fieldname aracılığıyla parametreleri almak açısından her şey iyi oldu. Bu parametreleri bir veritabanına atmaya başlamak için CouchDB ve Cradle'ı kurdum, ancak herşeyi yükledikten sonra req.params geri gelmeye başladı!Düğüm (Express) istek gövdesi boş

Diğer nedenlerle başlamak için Express'i kullanmalıydım, bu yüzden çalışmaya devam edip edemeyeceğimi görmek için buna geçmeyi denedim, ancak böyle bir şans yok.

var express = require('express'); 
var app = express.createServer(); 

app.configure(function(){ 
app.use(express.bodyParser()); 
app.use(express.cookieParser()); 
}); 

app.post('/', function(req, res){ 
    res.send(req.body); 
}); 

app.listen(8080, function() { 
    console.log('Printomatic listening at', app.url); 
}); 

Ben sayısız varyasyonlar denedi ama ne olursa olsun req.body geri boş geliyor ettik. Ben (test etmek için http-konsolunu kullanarak ve içerik {"name":"foobar"}

ile POST / kadar basit şeyler yollamayı Bu noktada ben Beşik/CouchDB kurarken şey kırdım merak etmeye başlıyorum böylece sinirliyim ediyorum hangi sırasıyla NPM ve Homebrew ile kurulmuştur). Bu biraz zaman duyarlı olduğundan, herhangi bir yardım büyük takdir edilecektir. Şimdiden herhangi bir yardım için teşekkürler!

+0

app.get ('/', function (req, res) {res.send ('Merhaba Dünya');} 'yı çalıştırmayı denerseniz ve bir istekte bulunursanız ne olur ?? – bryanmac

cevap

69

JSON verilerini gönderdiğinizden söz ediyorsunuz ({"name": "foobar"}). Bununla Content-Type: application/json yolladığınızdan emin olun, yoksa bodyParser ayrıştırmayacaktır.

Örn .:

$ curl -d 'user[name]=tj' http://local/ 
$ curl -d '{"user":{"name":"tj"}}' -H "Content-Type: application/json" http://local/ 

bodyParserapplication/json, application/x-www-form-encoded ve multipart/form-data ayrıştırır ve Content-Type göre kullanılacak olan ayrıştırıcı seçer olmasıdır.

+4

Kendimi aptal gibi hissediyorum. Http-konsol kullanıyordum ve sanırım bazı sebeplerden dolayı başlıklar değişti! Teşekkürler! –

+2

Postman REST istemcisini kullanıyordum ve form-veri kullandığımda değil işlerken kullanıyorum. Teşekkürler –

+1

Teşekkür ederim Nikhil! Ben Postman ile aynı sorunu vardı ve biz üstbilgi ayarlamak zorunda: İçerik-Tipi (kolon yok) ve Değer: application/json –

İlgili konular