2014-12-22 10 views
7

Uzak bir yöntem içinde belirli bir HTTP durum kodu döndürmenin bir yolu olup olmadığını bilmek istiyorum.Belirli http durum kodlarını geri döngüde uzak bir yöntemden nasıl döndürebilirim?

Bir hata nesnesi iletebileceğimiz bir geri arama işlevi olduğunu görebiliyorum, ancak HTTP durum kodunu nasıl tanımlarız?

+1

hangi teknoloji kullanıyorsunuz? – nburk

+0

geridönüşüm hakkında konuştuğumuz şey ise, yazarlarının bir yanıtı: https://groups.google.com/d/msg/loopbackjs/oK2g5A_h6vI/VNTD3_GDMQkJ – pulkitsinghal

cevap

-1

ExpressJS'de yaptığınız gibi herhangi bir durum kodunu döndürebilirsiniz.

... 
res.status(400).send('Bad Request'); 
... 

uzak yöntem olan ruhsat

+0

Bunu anlıyorum; ama nasıl bir açık yanıt örneği alırsınız? – ppoliani

+0

Yaşam döngüsünün hangi bölümünü kullandığınıza bağlıdır. Bazı yerlerde, ctx'e erişebilirsiniz, bu durumda 'ctx.req' yapabilirsiniz. Ayrıca getCurrentContext etrafında büyük tartışmalar da vardır: https://github.com/strongloop/loopback/issues/1676. – superkhau

+2

Niçin reddedildi? İşe yaramıyor ve kullanımdan kaldırılmış bir api değil, http://expressjs.com/en/api.html#res.status – cpxPratik

2

http://expressjs.com/api.html Bkz: Bir hata bildirmek için bir HTTP durum kodu kullanmak isterseniz

YourModel.remoteMethod('yourMethod', { 
    accepts: [ 
     {arg: 'res', type: 'object', http:{source: 'res'}} 
    ], 
    ... 
    returns: {root: true, type: 'string'}, 
    http: {path: '/:id/data', verb: 'get'} 
    }); 
15

, uzak yöntemlerde bir hata geçebilir geri arama yöntemi:

var error = new Error("New password and confirmation do not match"); 
 
error.status = 400; 
 
return cb(error);

Burada hata nesnesi hakkında daha fazla bilgi bulabilirsiniz

: Eğer bir hatayla kullanmadan HTTP yanıt durumunu değiştirmek isterseniz Error object

, ya #danielrvt tarafından tanımlanan iki yöntemden birini kullanabilir veya #superkhau. #superkhau tarafından belirtilen istek nesnesine başvuru almak için, yöntem kaydınızda uzak yönteminize iletilecek ek bir bağımsız değişken tanımlayabilirsiniz. Sadece yanıt durumunu değiştirmek gerekiyorsa, HTTP mapping of input arguments

+1

Bu, yığın yığınının tamamını döndürmez mi? Eğer geri dönmek isterseniz {durum: 404, mesaj: 'bulunamadı'} 'daha iyi bir yaklaşım var mı? – user3162553

0

Bkz sadece yapın:

ctx.res.status(400); 
return cb(null); 
İlgili konular