Javascript 节点JS cookie解析器不工作

Javascript 节点JS cookie解析器不工作,javascript,angularjs,node.js,cookies,Javascript,Angularjs,Node.js,Cookies,我正在学习一门教程。我想在我的web应用程序中使用Cookie来验证对我正在使用Node JS构建的API的请求。要在用户登录时设置cookie,我使用以下代码行: res.cookie('crewcookie', userkey, { maxAge: 9000000, httpOnly: true }); res.status(200).json({status: 1, data: userdata}); 由于httpOnly为true,因此当对我的API发出另一个请求时,我尝试检查cook

我正在学习一门教程。我想在我的web应用程序中使用Cookie来验证对我正在使用Node JS构建的API的请求。要在用户登录时设置cookie,我使用以下代码行:

res.cookie('crewcookie', userkey, { maxAge: 9000000, httpOnly: true });
res.status(200).json({status: 1, data: userdata});
由于httpOnly为true,因此当对我的API发出另一个请求时,我尝试检查cookie,如下所示:

console.log(req.cookies);
在我的脚本顶部,我有以下内容:

var cookieParser = require('cookie-parser');
app.use(cookieParser());
我觉得它不起作用,因为当我在后续请求中检查cookie时,日志显示:

{}

值得一提的是,我在前面使用了Angular JS。我在这里做错了什么?

我在React中遇到了类似的问题,花了一段时间才意识到问题可能是在开发环境中使用cookie而不是在生产环境中使用cookie。如果您在设置“req.cookies”后立即将其记录下来,您肯定会看到它已被保存—稍后它会被删除(可能是在重定向之后)。
但是,在生产环境中,cookie已设置(在我的例子中),并且可以在重定向后使用req.cookies进行检索。
我会在需要cookie的代码中添加一个if语句,类似于(express):


因此,cookie的使用将仅在生产环境中进行。

API是您在加载页面时在同一域和端口上设置/检查cookie的地方吗?我不知道它必须在同一端口上。有没有一种方法可以使它只在同一个域中运行,或者我没有其他选择?如果浏览器认为不同的端口是跨域的。要从客户端发送cookie,需要在所有请求上使用带有凭据的
。请参见
$http
文档
if (process.env.NODE_ENV === 'production'){...}