2017-03-28 28 views
1

我有一小塊自定義中間件,但我似乎無法獲得響應的內容類型,只能使用text/html。ExpressJS 4.15.2自定義中間件組內容類型

getValidator: function(req, res, next) { 
    res.setHeader('Content-Type', 'application/json'); 

    if (!req.query.Name) { next('please provide a Name'); } 

    return next(); 
    } 

這是一個超級小應用程序,沒有其他自定義中間件。

謝謝!

回答

1

我要回答自己。 :)請糾正我,如果我不正確,但這似乎是工作。

getValidator: function(req, res, next) { 

    if (!req.query.Name) { return res.status(500).json({ error: 'please provide a Name' }); } 

    return next(); 
    } 

如果您不使用「返回」,它將繼續通過鏈。如果你使用next('ANYTHING'),它將打擊ExpressJS的默認404處理程序,並嘗試返回text/html。我希望這可以幫助別人! (或我下次把它搞亂)

+1

你也可以使用'return next'('ANYTH')'。主要問題是通過從中返回來停止執行其他中間件。 – robertklep

+0

太棒了!謝謝robertklep! – coreyperkins

相關問題