【发布时间】:2013-11-02 05:41:42
【问题描述】:
我有一个节点服务器,它从 php 服务器中提取信息并通过回调将其发送到需要的位置。一到两次广告日,服务器陷入无限循环,我认为这是因为我没有正确处理 php 和节点服务器之间的连接。我在下面发布了我的身份验证代码。有人有什么想法吗?
exports.authenticate = function(request, callback) {
var https = require('https');
var options = {
hostname: 'www.mysite.com',
port: 443,
path: '/site/chatauth?id=' + request.sessionID,
method: 'GET',
};
var req = https.request(options, function(res) {
//console.log("statusCode: ", res.statusCode);
// console.log("headers: ", res.headers);
res.on('data', function(d) {
// process.stdout.write(d);
});
});
req.end();
req.on('response', function (response) {
var data = '';
response.setEncoding('utf8');
response.on('data', function(chunk) {
data += chunk;
});
// console.log (request.sessionID);
response.on('end', function() {
try {
callback(JSON.parse(data));
} catch(e) {
callback();
console.log("authentication failed");
}
});
});
};
【问题讨论】:
-
无限循环是什么意思?它会重复记录相同的行吗?
-
是的,它记录了相同的行。我有另一个中间件文件,它将更新侦听器,它不断达到该行并将 CPU 使用率提高到 99%。我认为这段代码中有一些东西不允许节点返回事件循环。
-
什么线路,卡在哪里?
标签: javascript node.js loops infinite