【发布时间】:2018-06-12 08:02:43
【问题描述】:
请帮助我, 我想让我的脚本同时访问多个 URL 以获取一些资源。该脚本运行正常,但问题是它泄漏内存并且服务器将关闭。请任何人帮助给我更好的解决方案。谢谢! 请帮助检查以下源代码:
var fs = require('fs');
var request = require('request');
var dir = './';
var dateTime = require('node-datetime');
const express = require('express');
const app = express();
var urls = [
'http://www.google.com',
'https://www.bing.com',
'http://www.yahoo.com',
"http://stackoverflow.com",
"http://github.com",
"http://www.yahoo.co.jp"
];
var urlLength=urls.length;
function remoteControllerPress(){
var dt = dateTime.create();
var newCurrentTimeDir = dt.format('Y-m-d-H-M-S').toString();
var dirName = dir+newCurrentTimeDir;
if (!fs.existsSync(dirName)){
fs.mkdirSync(dirName);
}
console.log("==============calling at "+newCurrentTimeDir + '\n');
for(var i = 0; i<urlLength; i++) {
(function() {
var j = i;
var url = urls[j];
process.nextTick(function() {
request(url, function(error, response, body) {
console.log("---------URL: "+url);
if (!error && response.statusCode == 200) {
console.log("URL: " + url + " statusCode: " + response.statusCode);
fs.writeFile(dirName+"/file_"+j, body.toString(), function(err) {
if(err) {
return console.log(err);
}
console.log(dirName+"/file_"+ j +" was saved!\n\n");
});
} else if (error) {
console.log("error.code:", error.code);
}
});
});
})();
}
setTimeout(function(){
remoteControllerPress();
},6000);
}
console.log("==============running...\n ");
remoteControllerPress();
app.post('/', function (req, res) {
res.send('hello world');
});
app.listen(
3000,
() => console.log('Server start listening on port 3000...')
);
【问题讨论】:
标签: node.js express nodes node-modules node-webkit