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

使用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();

});

回复

http://img.mukewang.com/61d043140001f4b203540176.jpg

慕勒3428872
浏览 196回答 2
2回答

眼眸繁星

@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”变量没有混淆。

侃侃无极

我有同样的问题。我之前解决了这个问题:<a href="/redirect-coaching">Coaching</a>&nbsp;router.get('/redirect-coaching', (req, res) =>{&nbsp; &nbsp;res.redirect('/coaching')})接着:router.get('/coaching', (req, res) =>{&nbsp; &nbsp;res.sendFile(path.resolve(__dirname, '../views/coaching.html'))})我知道这有点 hacky ......但它有效,这设置了 cookie。如果有人可以帮助提供更优雅的解决方案,我将不胜感激。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript