我使用了express.js的res.render功能,我遇到了一些设置自定义标题的问题,我尝试了4种方法,但都失败了
这是我的代码
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');
});
它的错误日志包含以下代码: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');
});
代码附带错误: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');
});
代码也有错误:Error: Can't set headers after they are sent.
我能想到并找到但仍无法解决的所有方法,有没有办法用res.render设置自定义标头(特别是编码类型)?
答案 0 :(得分:4)
要使用res.render
设置自定义响应标头,您可以使用res.set()
。这是一个示例代码:
app.get('/login', function(req, res) {
res.set({'Content-Type': 'application/xhtml+xml; charset=utf-8'});
res.locals.text="hello";
res.render('index');
});
请查看快递document,了解有关res.set()
答案 1 :(得分:0)
如果要为响应设置标题,可以在http.ServerResponse
对象上使用setHeader方法。
var server = require('http').createServer(function(req, res) {
res.setHeader('content-type', 'application/json');
res.write(headerStr);
res.end();
});