2015-09-07 11 views
6

में मिला नहीं मैं एक डिफ़ॉल्ट रूटर और जिन में कुछ मार्गों गए सेटअप:मार्ग की स्थापना जिन

router := gin.Default() 
router.POST("/users", save) 
router.GET("/users",getAll) 

लेकिन मैं कैसे संभाल करते 404 रूट जिन में मिला नहीं?

मूल रूप से, मैं httprouter जो मुझे समझ में जिन इसलिए का उपयोग करता है यह है कि क्या मैं मूल रूप से किया था का उपयोग कर रहा था ...

router.NotFound = http.HandlerFunc(customNotFound) 

और समारोह:

func customNotFound(w http.ResponseWriter, r *http.Request) { 
    //return JSON 
    return 
} 

लेकिन यह साथ काम नहीं करेंगे जिन।

c.JSON(404, gin.H{"code": "PAGE_NOT_FOUND", "message": "Page not found"}) 

उत्तर

18

क्या आप देख रहे हैं NoRoute हैंडलर है:

मैं इतना है कि मैं उपयोग कर सकते हैं c *gin.Context का उपयोग कर JSON लौटने में सक्षम होने की जरूरत है।

अधिक स्पष्ट:

r := gin.Default() 

r.NoRoute(func(c *gin.Context) { 
    c.JSON(404, gin.H{"code": "PAGE_NOT_FOUND", "message": "Page not found"}) 
}) 
+0

हाँ मैंने देखा है कि लेकिन मैं कैसे जिन संदर्भ उपलब्ध करवा सकता हूं? – tommyd456

+0

क्या आपने NoRoute हस्ताक्षर देखा है? यह एक हैंडलर प्राप्त करता है, जिसे बाद में संदर्भ पारित किया जाता है। क्या यही मतलब है तुम्हारा? –

+0

क्या आप संदर्भ – tommyd456

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