无法在 nodejs 中使用 cookie-parser 读取 cookie
Posted
技术标签:
【中文标题】无法在 nodejs 中使用 cookie-parser 读取 cookie【英文标题】:Cannot read cookies with cookie-parser in nodejs 【发布时间】:2018-03-05 16:00:07 【问题描述】:我的项目中有一个 angularjs 前端和 nodejs 后端。在角度代码中,我使用 $cookies 对象设置了一个 cookie,它工作正常,因为我可以在浏览器左上角的“显示页面信息”中找到 cookie。但是,当我向后端发送获取请求时,我无法在那里读取该 cookie。我的 server.js 中有这些行:const cookieParser = require('cookie-parser');
和后来的app.use(cookieParser());
。
然后我尝试这样做:
//custom passport jwt extraction function
var cookieExtractor = function (req)
console.log(req.cookies); //logs a ''
var token = null;
if(req && req.cookies)
token = req.cookies['jwt'];
return token;
;
这里出现了问题,因为 cookie 对象是空的(我在控制台中得到了“”)。我在这里做错了什么?
编辑:
我附上了我的应用程序设置的浏览器 cookie(对不起,非英语语言):cookies
【问题讨论】:
你用的是快递吗? 是的,我确实使用快递 【参考方案1】:试试这样:
如果您想将 cookie 设置为字符串,请使用 put 方法。
如果你想设置一个 cookie 作为对象,请使用 putObject 方法。
Angularjs
angular.module('cookiesExample', ['ngCookies'])
.controller('ExampleController', ['$cookies', function($cookies)
var obj = ;
obj.name = "Hello world";
$cookies.putObject('myCookie', obj);
]);
nodejs
var cookieParser = require('cookie-parser');
module.exports = function(app)
app.use(cookieParser());
console.log('cookie', req.cookies.myCookie);
【讨论】:
我仍然无法访问服务器端的 cookie。 req.cookies.myCookie 未定义。 请验证 cookie 是否存在于您的浏览器应用程序中 正如我之前所说。 cookie 存在于浏览器中。我只是无法在 nodejs 中访问它们(我可以在角度 tho 中)。设置为“/ auth”的cookies路径可能在这里有问题吗?这是我设置 Angular 应用程序的路径。以上是关于无法在 nodejs 中使用 cookie-parser 读取 cookie的主要内容,如果未能解决你的问题,请参考以下文章
无法在 nodejs 中使用 cookie-parser 读取 cookie
TypeError:无法使用nodejs在mongodb中读取null的属性“项目”