2013-10-12 2 views
8

Я хочу, чтобы отключить конкретное промежуточное программное обеспечение, которое я создал ранее в app.js, например:Можно ли отключить/удалить промежуточное программное обеспечение для определенного маршрута в ExpressJS?

app.use(express.bodyParser()); 

А потом я хочу, чтобы удалить эту bodyParser() для конкретного маршрута экземпляр:

app.post("/posts/add", Post.addPost); 

Спасибо

ответ

22

Вы могли бы написать функцию для обнаружения состояния, как это:

function maybe(fn) { 
    return function(req, res, next) { 
     if (req.path === '/posts/add' && req.method === 'POST') { 
      next(); 
     } else { 
      fn(req, res, next); 
     } 
    } 
} 

А затем изменить app.use заявление:

app.use(maybe(express.bodyParser())); 
+0

он работает как шарм, ТНХ так Вернер – mrblue

+0

Это помогло мне, как хорошо, у нас есть собственный middlewear, которые мы используем в глобальном масштабе с app.use , и теперь мы хотим, чтобы он был отключен для определенных маршрутов. Решение, которое мы придумали, состояло в том, чтобы сделать промежуточное белье принятым списком маршрутов, не должно действовать: D niceeeeeeeeeee –

+0

Crazy! Оно работает! Спасибо! –

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