2016-04-18 3 views
15

Есть ли причина не использовать стрелки вместо регулярных выражений функций в expressjs для обработчиков промежуточного программного обеспечения?es6 гармония arrow функции в экспресс-обработчиках

app.use(mountSomething()) 
router.use(mountSomethingElse()) 

app.get('/', (req,res,next)=> { 
    next(); 
}) 

route.get('/path', (req,res,next)=>{ 
    res.send('send') 
}) 
+2

Что заставляет вас думать, что вы не должны использовать функции стрелок вместо обычных функций? – saadq

+0

@saadq Я отредактировал вопрос –

+0

Единственное различие между регулярным выражением функции и функцией стрелки состоит в том, что функция стрелки не связывает свое значение 'this' (вы можете узнать больше об этом [здесь] (https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions)). Поэтому в таком случае, когда вам не нужно использовать 'this', использование функции со стрелками было бы неплохо. – saadq

ответ

10
app.get('/', (req,res,next)=> { 
    next(); 
}) 

такая же, как

app.get('/', function(req,res,next) { 
     next(); 
}.bind(this)) 

В большинстве случаев вы не собираетесь использовать «это» (который будет, вероятно, не определено) в обработчиках, так что вы можете использовать стрелки.

Смежные вопросы