使用渲染器发送到客户端后,无法设置标题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用渲染器发送到客户端后,无法设置标题相关的知识,希望对你有一定的参考价值。

我尝试以新页面登录后获取hbs文件

这是我的登录名

app.post('/auth', function(request, response) {
var username = request.body.username;
var password = request.body.password;
if (username && password) {
    db.query('SELECT * FROM accounts WHERE username = ? AND password = ?', [username, password], function(error, results, fields) {
        if (results.length > 0) {
            request.session.loggedin = true;
            request.session.username = username;
            response.redirect('/home');
        } else {
            response.send('Incorrect Username and/or Password!');

        }           
        response.end();
    });
} else {
    response.send('Please enter Username and Password!');
    response.end();
}
});

如果获得授权,这是我的职责

app.get('/home', function(request, response) {
if (request.session.loggedin) {
    //here is getting an error
    response.render('home');
} else {
    response.send('Please login to view this page!');
}
response.end();
});

错误消息

发送到客户端后无法设置标题

我的目录

enter image description here

答案

从所有处理程序中删除response.end()

response.redirect()response.send()都已完成响应。无需在其后呼叫response.end()

[只有像response.write()这样可以被多次调用并且不能自行完成响应的事物,才需要.end()

以上是关于使用渲染器发送到客户端后,无法设置标题的主要内容,如果未能解决你的问题,请参考以下文章

纹理上的片段着色器

发送到客户端后无法设置标头

为啥显示此错误?发送到客户端后无法设置标头

为啥片段着色器比渲染纹理更快?

无法通过电子中的渲染器进程发送消息

在着色器中使用 glTexture