2015-02-23 18 views
8

Tôi có thể sai nhưng tôi không thể tìm thấy loại này trong bất kỳ tài liệu nào. Tôi đang cố gắng đặt loại nội dung trên toàn cầu cho bất kỳ phản hồi nào và đã thực hiện như sau:Cách đặt loại nội dung trên toàn cầu trong node.js (express)

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

trước khi xác định tuyến đường của tôi.

// 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); 

Vì một lý do nào đó không hiệu quả. Bạn có biết tôi đang làm gì sai không? Đặt nó trong từng phương pháp riêng, hoạt động nhưng tôi muốn nó trên toàn cầu ...

Trả lời

13

Hãy thử this cho Express 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

Tìm thấy vấn đề: cài đặt này được đưa TRƯỚC:

app.use(app.router) 

nên mã cuối cùng là:

// 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

Lỗi: 'app.router' bị phản đối, hãy xem các 3.x để 4.x migratio n hướng dẫn để biết chi tiết về cách cập nhật ứng dụng của bạn. – rob

Các vấn đề liên quan