I'm using express.js's res.render function and I met some issue to set custom headers, I'm tried 4 kind of method and all failed
here is my code
app.get('/login', function(req, res, next) {
  res.writeHead(200, {'Content-Type':'text/plain; charset=utf-8'});
  next()
});
app.get('/login', function(req, res) {
  res.locals.text="hello";  
  res.render('index');
});
It has a error log with this code: Error: Can't set headers after they are sent.
app.get('/login', function(req, res, next) {
  res.header(200, {'Content-Type':'text/plain; charset=utf-8'});
  next()
});
app.get('/login', function(req, res) {
  res.locals.text="hello";
  res.render('index');
});
the code comes with the error: TypeError: field.toLowerCase is not a function
app.get('/login', function(req, res) {
  res.writeHead(200, {'Content-Type': 'application/xhtml+xml; charset=utf-8'});
  res.locals.text="hello";
  res.render('index');
});
the code also has error: Error: Can't set headers after they are sent.
That's all the ways I can thought and find but still can't resolve, is there any ways to set custom header (especially encoding type) with res.render?
To set custom response header with res.render, you can use res.set(). Here is an example code:
app.get('/login', function(req, res) {
  res.set({'Content-Type': 'application/xhtml+xml; charset=utf-8'});
  res.locals.text="hello";
  res.render('index');
});
Please check Express document for more details about res.set()
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