Home » Nodejs » Express.js – How to set a header to all responses

Express.js – How to set a header to all responses

Posted by: admin November 29, 2017 Leave a comment

Questions:

I am using Express for web services and I need the responses to be encoded in utf-8.

I know I can do the following to each response:

response.setHeader('charset', 'utf-8');

Is there a clean way to set a header or a charset for all responses sent by the express application?

Answers:

Just use a middleware statement that executes for all routes:

// a middleware with no mount path; gets executed for every request to the app
app.use(function(req, res, next) {
  res.setHeader('charset', 'utf-8')
  next();
});

And, make sure this is registered before any routes that you want it to apply to:

app.use(...);
app.get('/index.html', ...);

Express middleware documentation here.