node.js - 使用渲染时将标头发送到客户端后无法设置标头
问题描述
作为新页面登录后,我试图获取 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();
});
错误信息
发送到客户端后无法设置标头
我的目录
解决方案
response.end()
从所有处理程序中删除。
两者都response.redirect()
已经response.send()
完成了响应。无需response.end()
在他们之后打电话。
只有像response.write()
which 这样的东西可以被多次调用并且不能自己完成响应才需要 a .end()
。
推荐阅读
- google-sheets - 如何根据一个单元格与多个相邻单元格作为今天的日期来镜像单元格
- node.js - 成功登录后未触发firebase onAuthStateChanged
- html - Html to Pdf Format Angular
- java - Setting order of ActionBar
- javascript - 未捕获的类型错误:无法读取未定义的属性(读取“类型”)
- ios - Can 8 bytes be NIL?
- python-3.x - How does my server know that a client has disconnected?
- git - Can you use git describe to differentiate between a release, a hotfix and a feature?
- c++ - 最小方格数
- mongodb - MongoDB:如何加快我的数据重组查询/操作?