我使用express来写我想写的聊天应用程序。问题是当我用快速的get方法获取数据时我无法在我的代码的其他部分使用它,在console.log中使用未定义的var消息。
代码是
// routing
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
var cookieManager = new co.cookie(req.headers.cookie);
var client = new memcache.Client(11211, "localhost");
client.connect();
user = client.get("sessions/"+cookieManager.get("sec_session_id"), function(error, result){
var session = JSON.parse(result);
user = JSON.parse(session.name);
user = user.username;
});
});
我想存储用户变量并在我的代码的另一部分使用它,所以我在这段代码之后写了console.log(用户),但用户在console.log中未定义
任何形式的帮助将不胜感激。
答案 0 :(得分:1)
编写一个函数并传递用户名,如下所示:
// routing
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
var cookieManager = new co.cookie(req.headers.cookie);
var client = new memcache.Client(11211, "localhost");
client.connect();
client.get("sessions/"+cookieManager.get("sec_session_id"), function(error, result){
var session = JSON.parse(result);
// user = JSON.parse(session.name); // what are you trying to do here?
// user = user.username;
do_something_with_user(session.name.username);
});
});
function do_something_with_user(username) {
console.log(username);
}
我建议您查看一些关于javascript / node.js的教程,例如http://www.nodebeginner.org/