У меня есть сомнения по поводу промежуточного программного обеспечения в экспресс.
Я хочу, чтобы многие думали в одном промежуточном программном обеспечении. Например
У меня есть этот код и промежуточное ПО
module.exports = function(req,res,next) {
if (req.method === 'GET') {
res.end('GET method not supported');
} else {
next();
}
};
и я использую это так
app.route('/', <the_middleware>, (res, req, next) => {
// Code
})
Но мне интересно, можно ли сделать что-то подобное
app.route('/', <the_middleware>.<the function1>, (res, req, next) => {
// Code
})
app.route('/', <the_middleware>.<the_function2>, (res, req, next) => {
// Code
})
есть ли возможность сделать что-то вроде
function function1 (req,res,next) {
if (req.method === 'GET') {
res.end('GET method not supported');
} else {
next();
}
};
function function2 (req,res,next) {
if (req.method === 'GET') {
res.end('GET method not supported');
} else {
next();
}
};
module.exports = <I don`t know what go here>
Спасибо.
Обновлять. IT работает, мой код теперь
Маршрутизатор
router.post('/', checkAuth.sayHi, checkAuth.sayBye, (req, res, next) => {
console.info('good');
res.status(200).send('it works');
console.info('yes');
});
Промежуточное ПО
module.exports = {
sayHi(req, res, next) {
console.info('hi');
next();
},
sayBye(req, res, next) {
console.info('bye')
next();
}
};
Вы можете просто экспортировать объект, содержащий обе функции:
module.exports = {
function1,
function2
}
Да, но как мне использовать его в маршруте?
Почему бы не сделать
app.get('/', function() { throw new Error('GET not supported'); })
или что-то в этом роде?