2016-08-19 15 views
0

ノードと非同期プログラミングを初めて使用しています。私は外部のウェブサイトからいくつかのデータを取り出し、それをクライアント(AngularJS Client)に提示する必要があるウェブサイトを構築しています。
私がしたいのは、サーバーが起動するたびに外部のWebサイトからデータを取得し、DBに配置する必要があることです。 NodeJS:サーバーが起動するたびにデータを取得します。

var express = require('express'), 
 
    app = express(), 
 
    abc = require('./server/controllers/abc'); 
 

 
app.listen(3000, function() { 
 
    console.log('I\'m listening...'); 
 
}); 
 

 
app.on('listening', function(){ 
 
    abc.visitPages; 
 
});

abc.jsでスニペットを以下:

module.exports.visitPages = function() { 
 
    console.log('Going to visitPages'); 
 
}

私のサーバー、私は私のserver.jsファイル内のコードを次している

うまく動作しますがvisitページ()の機能でabc.jsの機能は非常に親切です。
ありがとうございます。

+0

サーバーを起動するたびにフェッチしますか?定期的にフェッチしませんか? –

+0

実際には、サーバーが稼働している限り、定期的に定期的にフェッチします。それについての示唆? @ExplosionPills –

答えて

0

実際に機能を実行していることを確認する必要があります。他の言語とは異なり、関数をjavascriptで呼び出す必要があることを示す括弧を付ける必要があります。

リスニングコールバック内にabc.visitPages()を使用してください。

また、私はapp.on('listener')がこれまで起爆するとは確信していません。急行のように見えるのはsupport itではありません。代わりにメソッド呼び出しをapp.listen()コールバックに移動します。

app.listen(3000, function() { 
    console.log('I\'m listening...'); 
    abc.visitPages(); 
}); 
0

ここで何をしたいですが、イベントがないことに注意がlisteningと呼ばれる、あなたはあなたが機能を直接呼び出すことができます

var express = require('express'), 
    app = express(), 
    abc = require('./server/controllers/abc'); 

app.listen(3000, function() { 
    console.log('I\'m listening...'); 
    app.emit('listening'); // <-- just emit this event 
}); 

app.on('listening', function() { 
    abc.visitPages(); // <-- call function 
}); 

//alternate 
app.on('listening', abc.visitPages); 
+0

あなたはおそらく 'abc.visitPages()'を単独で(または少なくともDBが準備ができたら)行うことができます –

+0

@ExplosionPillsはいくつかの変更を加えました、あなたはどう思いますか? –

0

にそれを放出しなければなりません。

var express = require('express'), 
app = express(), 
abc = require('./server/controllers/abc'); 
abc.visitPages(); 

app.listen(3000, function() { 
console.log('I\'m listening...'); 
call_my_function(); 
}); 
関連する問題