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

时间:2019-11-15 08:58:03

标签: javascript node.js express

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

回复

enter image description here

2 个答案:

答案 0 :(得分:1)

  1. @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'));
    });
    
  2. 还请确保“ sessionTracker”变量没有混淆。

答案 1 :(得分:0)

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

router.get('/coaching', (req, res) =>
{
   res.sendFile(path.resolve(__dirname, '../views/coaching.html'))
})

然后:

type foo

我知道这有点hacky ...但是它可以工作,并且可以设置cookie。

如果有人可以提供更好的解决方案,我将非常感激。