2017-11-17 8 views
0
initializeDb(db => { 

    // internal middleware 
    app.use(middleware({ config, db })); 

    // api router 
    app.use('/api', api({ config, db })); 

    app.server.listen(process.env.PORT || config.port,() => { 
     console.log(`Started on port ${app.server.address().port}`); 
    }); 
}); 

https://github.com/developit/express-es6-rest-api/blob/master/src/index.js#L27このjavascript es6 fat arrow関数のdb引数の値または使用法は何ですか?

上記の状況、DBはコンテキストを見て、どこからともなくポップと思われる、ソースコードへの直接リンクをクリックしてください。

私はここでも(https://codepen.io/adamchenwei/pen/vWWmXa)同じ方法でシミュレートしました。dbにアクセスできないようにしてください。その具体的な定型文の中で正確にdbは何をしますか?

答えて

2

dbは、コードが実際の状況の上、この

'use strict'; 

initializeDb(function (db) { 

    // internal middleware 
    app.use(middleware({ config: config, db: db })); 

    // api router 
    app.use('/api', api({ config: config, db: db })); 

    app.server.listen(process.env.PORT || config.port, function() { 
     console.log('Started on port ' + app.server.address().port); 
    }); 
}); 
1

のように見える、DBはどこ

から飛び出すようだinitializeDb

のコールバック関数の引数でありますinitializeDbに渡す関数のパラメータです。 initializeDb presumableは新しいデータベースインスタンスを作成し、そのインスタンスを渡した関数に渡します。

これは機能の仕組みであり、呼び出し時に提供されるパラメータを受け入れます。あなたの例ではではなく、関数を呼び出す人はですが、別の関数(initializeDb)です。

コールバックをとる関数の簡単な例:

function answerToEverything(callback) { 
 
    callback(42); 
 
} 
 

 
answerToEverything(answer => console.log(answer));

関連する問題