我尝试将我的 Compound.js 应用程序用作(透明)代理服务器。当用户尝试请求外部网站时,应用程序将检查具有该 IP 地址的用户之前是否经过身份验证。
如果是这样,将显示外部站点,如果不是,将鼓励用户登录。问题是,当访问数据库对象“用户”时,没有处理响应。当我注释掉数据库部分并只使用匿名函数中的代码时,程序按预期工作。
action('exturl', function () {
User.all({ where: { ipaddress: req.ip }}, function(err, users) {
if (users.length > 0) {
this.user = user[0];
var proxy = http.createClient(80, req.headers['host'])
var proxy_request = proxy.request(req.method, req.url, req.headers);
proxy_request.addListener('response', function (proxy_response) {
proxy_response.addListener('data', function(chunk) {
res.write(chunk, 'binary');
});
proxy_response.addListener('end', function() {
res.end();
});
res.writeHead(proxy_response.statusCode, proxy_response.headers);
});
req.addListener('data', function(chunk) {
proxy_request.write(chunk, 'binary');
});
req.addListener('end', function() {
proxy_request.end();
});
} else {
redirect(path_to.login);
}
});
});
我的代码中是否有故障?我不知道我做错了什么。