2017-09-02 8 views
1

expressを使用しています。なぜ我々は、このようなコールバックを使用している。これに代えて明確なnode.jsコールバック

var port = process.env.PORT || 8080; 
app.listen(port, function(){ 
    console.log('Listenning: ' + port); 
}); 

var port = process.env.PORT || 8080; 
var onBegin = function() { 
    console.log('Listenning: ' + port); 
} 
app.listen(port, onBegin); 

これは必須ですか?または、2番目の問題が発生する可能性がありますか?私は、多くの人がインラインコールバックを使用しているのを見ていますが、他のブロックやファイルにすべてのコールバックを定義するのはなぜですか?これが必須の場合は、どこでベストプラクティスを見つけることができますか?たとえば、私は次のリンクを見つけましたが、多分他の何かを推薦できますか?マスト、基礎となど

私が発見したリンクのように: https://www.codementor.io/mattgoldspink/nodejs-best-practices-du1086jja

EDIT:

var onGET = function(req, res) { 
    var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress; 
    console.log('User connected: ' + ip); 
    res.send('OK: ' + req.query.id); 
} 
app.get('*', onGET); 

答えて

0

ここ

iはパラメータを使用しています変数として別のコールバック関数です

機能的には違いはありません。匿名関数は読みやすく、将来的にコードを簡単に保守することができるため、匿名関数を使用することをお勧めします。

コールバックを別のブロックまたはファイルで定義することはできますが、scopeに注目してください。

1

匿名コールバックはチュートリアルやガイドによく表示されています。なぜなら、初心者にとっては理解しやすいからです。実際のアプリケーションを開発している間は、動作しません。それがこの方法を理解することがいかに簡単か

app.get('/user/', User.authenticate, User.getData); 

お知らせ:

は、ここで実際のルートの例です。他の方法は、ガイドとチュートリアルでのみ実際のアプリケーションでは、を使用して名前付きミドルウェアを使用します。


EDIT:最後に、あなたが最もよく理解する方法です。 app.listenコールバックのように1回呼び出される関数については、それらの名前をスキップすることができます。それはより読みやすいように見えます。

0

あなたは彼らが、それはまだ動作します分離することができ、上記の回答に

を活用。よりジューシーように

あなたはNodeJSの最新バージョンで実行されている場合は、以下のように上記のコードを書くことができます。

var port = process.env.PORT || 8080; 
    app.listen(port, => console.log('Listenning: ' + port); 
); 

var onGET = (req, res) => { 
var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress; 
console.log('User connected: ' + ip); 
res.send('OK: ' + req.query.id); 
} 
app.get('*', onGET); 

を以下の質問をドロップし、より明確にするため必要がある場合は。

希望すると便利です。

関連する問題