Если вы хотите задействовать несколько функций на одном и том же сервере , просто зарегистрируйте их как последовательное промежуточное ПО.Промежуточное программное обеспечение вызывается по порядку слева направо. Используйте next()
для вызова следующего обработчика.
app.post('/pay', handler1, handler2....)
При этом вы часто обнаружите, что полезно извлечь ваши обработчики (часто называемые контроллерами), чтобы они могли бытьмодуль протестирован и вызван в другом месте:
пример контроллера:
const makePayment = (req, res, next) => {
// handler logic
}
const createUser = (req, res, next) => {
// handler logic
}
module.exports = {
makePayment,
createUser
}
Маршрутизатор:
import Controllers from '<path to controllers>'
app.post('/pay', Controllers.makePayment, Controllers.createUser)
Это будет работатьдо тех пор, пока они могут выполняться поочередно.Если функциональные возможности зависят друг от друга (например, требуются результаты от другого), вы можете извлечь эти функциональные возможности и вызвать их напрямую:
import { myMethod } from <path to method>
app.post('/post', (req, res, next) => {
myMethod(req.body.userInput)
})
Если вы вызываете API из другого server, то в вашем обработчике запросов вы можете использовать ваш http-клиент по своему выбору для отправки запроса с вашего сервера на их конечную точку.
Вот пример использования axios
:
app.post('/pay', async (req, res, next) => {
const data = await axios.post('their_endpoint', {
data: req.body.userInput
})
// rest of handler
})