2016-11-07 68 views
3

同時要求在官方的RESTify回購:#1224的RESTify:設置默認格式

嗨,

是否有可能有一個默認格式,可以處理任何接受一個沒有被定義的類型。

例如:

restify.createServer({ 
    formatters: { 
     'application/json':() => {}, 
     // All other requests that come in are handled by this, instead of throwing error 
     'application/every-thing-else':() => {} 
    } 
}); 
+1

當您嘗試返回自定義模型時,您如何預期不必編碼?默認的格式化程序是用於application/octet-stream的,如果有幫助的話。 – HeadCode

+0

我之前並不清楚。更新了問題。我想要一個格式化程序,它可以處理除默認格式化程序列表之外的其他任何格式程序。 – Zuhaib

+0

是的,這正是我想要的。在我的情況下,所有的MIME類型只是具有不同屬性的JSON輸出。 – Zuhaib

回答

0

通過外表來看,這是不可能的。由於格式化程序存儲在字典中,因此無法創建與每個輸入相匹配的鍵(這樣做無論如何會擊敗字典的點)。在JSON之外完成這種事情的唯一方法是使用正則表達式,而正則表達式不適用於JSON。

這是我寫的一個程序來測試這個。

var restify = require("restify"); 

var server = restify.createServer({ 
    formatters: { 
     'application/json':() => { console.log("JSON") }, 
     "[\w\W]*":() => { console.log("Everything else") } // Does not work 
    } 
}); 

server.get("/", (req, res, next) => { 
    console.log("Root"); 
    res.setHeader("Content-Type", "not/supported"); 
    res.send(200, {"message": "this is a test"}); 
    next() 
}); 

server.listen(10000); 

另外這裏的情況下,對文檔的鏈接在這你可以找到一些暗示,我都看不到。 Restify documentation

+0

我可能忽略了,但我找不到關於正則表達式的關鍵文檔。有記錄嗎? – Zuhaib

+1

這不是,正則表達式不適用於JSON。我給我的測試代碼顯示我的嘗試。我希望你有它,以防你想自己測試它。 – carchase