2017-09-24 64 views
-1

我的项目中有一个angularjs前端和nodejs后端。在角码中,我使用$ cookies对象设置一个cookie并且它的工作正常,因为我可以在浏览器左上角的“显示页面信息”中找到cookie。然而,当即时通讯发送请求到后端我不能在那里读取该cookie。我在我的server.js中有这些行:const cookieParser = require('cookie-parser');及更高版本app.use(cookieParser());。 然后我试着这样做:无法在nodejs中使用cookie解析器读取cookie

//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的SS(对不起,非英语语言):cookies

+0

是否使用快递的NodeJS? – lilezek

+0

是的,我确实使用快递 – dudinii

回答

0

尝试这样的:

如果你想设置一个

cookie作为字符串使用put方法。

并且您希望将cookie设置为对象使用putObject方法。

Angularjs

angular.module('cookiesExample', ['ngCookies']) 
.controller('ExampleController', ['$cookies', function($cookies) { 
    var obj = {}; 
    obj.name = "Hello world"; 
    $cookies.putObject('myCookie', obj); 
}]); 

var cookieParser = require('cookie-parser'); 
module.exports = function(app) { 
    app.use(cookieParser()); 
} 

console.log('cookie', req.cookies.myCookie); 
+0

我仍然无法访问服务器端的cookie。 req.cookies.myCookie未定义。 – dudinii

+0

请验证cookie是否存在您的浏览器应用程序 – Chandru

+0

正如我之前所说。 Cookie存在于浏览器中。我只是不能在nodejs中访问它们(我可以在角度tho中)。可能cookie路径设置为“/ auth”是一个问题吗?它是我设置角度应用的路径。 – dudinii