znat
znat

Reputation: 13484

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

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?

Upvotes: 53

Views: 46571

Answers (1)

jfriend00
jfriend00

Reputation: 708106

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.

Upvotes: 83

Related Questions