Я хочу настроить промежуточное ПО таким образом, чтобы каждое промежуточное ПО «оканчивалось» на одно общее промежуточное ПО, которое устанавливает объект ответа для отправки.Мне это нужно, потому что мне нужно добавить несколько пользовательских заголовков и ответных сообщений (включая i18n), прежде чем я сделаю res.status(code).send(resp)
.
Вот структура, которую я имею в виду.
function appSeup() {
const app = express()
// API token check
app.use((req, res, next) => {
let options = {
requestId: req.get('...'),
token: req.get('...')
}
let c = auth.authenticate(options)
if (c.check) {
// Go to common response object middleware with c
} else {
// Go to common response object middleware with c
}
})
// End-points
app.post('/books', async (req, res, next) => {
let c = createBookService(req)
// Go to common response object middleware with c
})
//
app.post('/book/:bookId', async (req, res, next) => {
let c = getBookService(req)
// Go to common response object middleware with c
})
// 404 - Not found
app.use((req, res, next) => {
let c = mw.notfound(req)
// Go to common response object middleware with c
})
// Common response object
app.use((req, res, next) => {
// Build common response object with custom headers and response messsages.
// How do I pass the c created by any of the above?
})
return app
}