2015-02-23 66 views
8

我可能是錯的,但我無法在任何文檔中找到它。定義我的路線前如何在node.js中全局設置內容類型(快速)

// Set content type GLOBALLY for any response. 
    app.use(function (req, res, next) { 
    res.contentType('application/json'); 
    next(); 
    }); 

: 我試圖在全球任何響應集的內容類型並沒有什麼樣子。

// Users REST methods. 
    app.post('/api/v1/login', auth.willAuthenticateLocal, users.login); 
    app.get('/api/v1/logout', auth.isAuthenticated, users.logout); 
    app.get('/api/v1/users/:username', auth.isAuthenticated, users.get); 

由於某種原因,這是行不通的。你知道我做錯了什麼嗎?在單獨的每個方法將它設置,工作原理,但我想它在全球範圍...

回答

13

嘗試this爲快遞4.0:

// this middleware will be executed for every request to the app 
app.use(function (req, res, next) { 
    res.header("Content-Type",'application/json'); 
    next(); 
}); 
3

發現問題:此設置必須放在前:

app.use(app.router) 

所以最後的代碼是:

// Set content type GLOBALLY for any response. 
app.use(function (req, res, next) { 
    res.contentType('application/json'); 
    next(); 
}); 

// routes should be at the last 
app.use(app.router) 
+0

錯誤: 'app.router' 已過時,請參閱3.X到4.x migratio有關如何更新您的應用程序的詳細信息。 – rob 2017-06-09 09:01:57

相關問題