我正在使用node.io构建一个剪贴簿。
我想要废弃的网页每分钟都有新内容。我想每分钟都一次又一次地完成我的工作。 (好吧,我可以用bash脚本做到这一点,但我想留在javascript) 这是一项基本工作:
var nodeio = require('node.io'), options = {timeout: 10};
exports.job = new nodeio.Job(options, {
input: ['hello', 'foobar', 'weather'],
run: function (keyword) {
this.getHtml('http://www.google.com/search?q=' + encodeURIComponent(keyword), function (err, $) {
var results = $('#resultStats').text.toLowerCase();
this.emit(keyword + ' has ' + results);
});
}
});
我怎么能这样做?我是node.js的初学者,我在工作中尝试了setInterval(:没有成功。
答案 0 :(得分:3)
尝试此操作(使用&#34;节点<myfile.js
&gt;&#34;而不是&#34; node.io <myfile.js
&gt;&#34;):
var nodeio = require('node.io'), options = {timeout: 10};
var job = {
input: ['hello', 'foobar', 'weather'],
run: function (keyword) {
this.getHtml('http://www.google.com/search?q=' + encodeURIComponent(keyword), function (err, $) {
var results = 'test';//$('#resultStats').text.toLowerCase();
this.emit(keyword + ' has ' + results);
});
}
};
setInterval(function(){
nodeio.start(new nodeio.Job(options, job), options, function(){});
}, 5000);
您遇到的问题是node.io中的以下代码块,当您在运行作业时未提供回调时,它会退出节点:
//Default behaviour is to exit once the job is complete
callback = callback || function (err) {
if (err) {
utils.status.error(err);
}
process.exit();
};