nodejs无法读取phpsessid,返回错误未定义

nodejs无法读取phpsessid,返回错误未定义,php,node.js,session,memcached,Php,Node.js,Session,Memcached,我只是想在nodejs中读取会话并从memcached中读取会话数据。但在从phpsessid读取数据时遇到了一些问题 var app = require("http").createServer(handler), fs = require("fs"), memcache = require("memcache"), co = require("./cookie.js"); app.lis

我只是想在nodejs中读取会话并从memcached中读取会话数据。但在从phpsessid读取数据时遇到了一些问题

var app = require("http").createServer(handler),
    fs = require("fs"),
    memcache = require("memcache"),
    co = require("./cookie.js");

app.listen(7070);

//On client incomming, we send back index.html
function handler(req, res){
    fs.readFile(__dirname + "/index.html", function(err, data){
        if(err){
            res.writeHead(500);
            return res.end("Error loading index.html");
        }else{
            res.writeHead(200);
            res.end(data);
        }
    });


    //Using php session to retrieve important data from user
    var cookieManager = new co.cookie(req.headers.cookie);

    var client = new memcache.Client(11211, "localhost");
    client.connect();

    client.get("sessions/"+cookieManager.get("PHPSESSID"), function(error, result){
        console.log("error : "+error);
        if(typeof(error)==="undefined"){
            var session = JSON.parse(result);
        }
    });
}
并访问此脚本控制台日志显示此错误:未定义消息。我想访问会话数据,需要此方面的帮助


提前感谢

最简单的方法是使用带有cookie解析器的
连接
模块。

这基本上与您以前问过的问题相同,请尝试以下方法:

client.get("sessions/"+cookieManager.get("PHPSESSID"), function(error, result) {
  if (error) {
    console.log(error);
  } else {
    session_management(JSON.parse(result));
  }
});

function session_management(session) {
  console.log(session);
}

这样一个简单的系统不需要连接。顺便说一句,这个cookie管理器在许多公司生产,没有任何错误报告。所以问题不在于这一部分

尝试检查以下各项:

1) 检查php.ini文件以查找会话的cookie名称(默认为PHPSESSID,但可以更改)

2) 检查memcache是否正在运行,一切正常(未被防火墙或其他东西锁定)。为此,在php或node.js端(选择一个):将一个var放入memcache,然后检索它,并检查var内容是否正确

3) 检查PHP端的memcacheSessionHandler是否正确使用(在需要运行它之前)


3) 如果你还有问题,在cookie manager上,您会发现一个列表函数:打印它的内容以检查接收的cookie Node.JS。

您能为您的答案添加一些示例吗?Chris当然可以,但我认为问题出在php方面,我将phpsessid名称更改为sec_sess_id,我不知道节点使用此名称,因为我在节点中非常不方便:)…谢谢我的意思是节点使用这个会话cookie作为链接绑定到服务器,就像php这样做一样。谢谢亲爱的Chris