I might be wrong but I wasn't able to find this in any documentation. I am trying to set content type globally for any response and did it like:
// Set content type GLOBALLY for any response.
app.use(function (req, res, next) {
res.contentType('application/json');
next();
});
before defining my routes.
// 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);
For some reason this doesn't work. Do you know what I am doing wrong? Setting it in each method separately, works but I want it globally...
Try this for 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();
});
Found the issue: this setting has to be put BEFORE:
app.use(app.router)
so the final code is:
// 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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With