我对节点很陌生,我的头撞在墙上,这应该是一个简单的node+express+googlecal+pug问题。
gcal节点/快速路( controller
。
我在这里错过了什么?
getcalendars: async function(oAuth2Client, res) {
const calendar = google.calendar({ version: "v3", auth: oAuth2Client });
cal = await calendar.calendarList.list(
{},
(err, result) => {
//console.log("HEADERS SENT1?: "+res.headersSent);
if (err) {
console.log('The API returned an error: ' + err);
return;
}
console.log(JSON.stringify(result));
message2 = JSON.stringify(result)
res.render('schedules', {message2: message2})
return
});},
编辑:调用函数
router.route('/dashboard/schedules')
.get(async function(req, res) {
if (req.session.loggedin) {
//x = gcalController.getcalendars(req, res);
token = await gcalController.gettoken(req, res);
isAuth = await gcalController.calauth(token);
listcalendars = await gcalController.getcalendars(isAuth,res);
} else {
res.redirect("/?error=failedAuthentication")
//res.send('Please login to view this page!');
}
});发布于 2020-12-23 02:19:03
当您不止一次发送响应时,就会发生Can't set headers already sent。通常,您可以通过返回res.send()调用来终止函数。
它看起来像创建res对象的快递中间件在res.render()从微任务队列中取出时发送响应。
你能出示完整的密码吗?这似乎源于调用getcalendars的作用域。
https://stackoverflow.com/questions/65417898
复制相似问题