为了账号安全,请及时绑定邮箱和手机立即绑定

在 express 中使用 res.sendFile() 时无法设置 cookie

在 express 中使用 res.sendFile() 时无法设置 cookie

慕勒3428872 2022-01-01 20:02:10
使用res.sendFile() 时,不会在响应中收到set-cookie标头。app.get(sessionTracker, (req, res, next) => {  res.cookie('tracker', '123a', {    maxAge: 172800000,    httpOnly: true,    secure: true  });  return res.status(200).sendFile(path.join(ROOT_DIR, 'dist', 'index.html')).end();});回复
查看完整描述

2 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

@Chandan 我能够完成这项工作,您不需要 .end()


 app.get("/sessionTracker", (req, res, next) => {

   res.cookie('tracker', '123a', {

    maxAge: 172800000,

    httpOnly: true,

    secure: true

   });

  return res.status(200).sendFile(path.join(__dirname, './', 'nu.json'));

});

还要确保“sessionTracker”变量没有混淆。


查看完整回答
反对 回复 2022-01-01
?
侃侃无极

TA贡献2051条经验 获得超10个赞

我有同样的问题。我之前解决了这个问题:


<a href="/redirect-coaching">Coaching</a> 



router.get('/redirect-coaching', (req, res) =>

{

   res.redirect('/coaching')

})

接着:


router.get('/coaching', (req, res) =>

{

   res.sendFile(path.resolve(__dirname, '../views/coaching.html'))

})

我知道这有点 hacky ......但它有效,这设置了 cookie。


如果有人可以帮助提供更优雅的解决方案,我将不胜感激。


查看完整回答
反对 回复 2022-01-01
  • 2 回答
  • 0 关注
  • 195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信