Как передать аргумент конструктору для промежуточного программного обеспечения? - PullRequest
0 голосов
/ 05 марта 2019

Предположим, я хочу сделать это:

app.use('/user/login', require('./routes/user.route.js')(variable));

Не могу, потому что получу:

TypeError: Router.use () требует функции промежуточного программного обеспечения, но получил неопределенное значение

Как мне передать variable в user.route конструктор?

1 Ответ

2 голосов
/ 05 марта 2019

В вашем user.route.js вам нужно экспортировать что-то вроде этого:

module.exports = function (variable) {
    return (req, res, next) => {
        // your middleware
        next()
    }
}

Или с карри (https://wsvincent.com/javascript-currying/):

module.exports = variable => (req, res, next) => {
   const myUsedVariable = variable + 1
   res.send(myUsedVariable)
}

А если вы используете экспресс. Маршрутизатор:

var express = require('express')
var router = express.Router()

router.get('/', function(req, res) {
  res.send('Birds home page')
})

module.exports = variable => {
   // do something with your variable
   router.use(function displayVariable(req, res, next) {
      console.log(variable)
      next()
   })

   return router
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...