nodejs无法读取phpsessid,返回错误未定义
我只是想在nodejs中读取会话并从memcached中读取会话数据。但在从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
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