Как поместить все app.use в отдельный общий файл - PullRequest
0 голосов
/ 12 января 2019

У меня есть несколько app.use в моем индексе / начальной точке моего приложения.

т.е.

app.use(
    if (!req.contextToken && req.contextTokenchecked) {
      req.queryToFirebase = false;    
      req.contextTokenchecked = true;
      req.contextToken   = {}
      }
    next()
) 

app.use(//Do something 2) 

и т. Д.

Теперь, это как бы делает мой код неопрятным (в index.js), поэтому я подумал о создании отдельного файла js (скажем, intialize.js), который будет содержать все мои app.use

До сих пор я привык только создавать отдельные маршруты

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

и затем импортируйте его в мой index.js

app.use('/auth', auth)

Но на этот раз мне не нужны мои маршруты в отдельном файле, а скорее все

app.use() 

В одном файле common.js

Во-вторых, у меня также есть маршрут, который загружает данные из gmail (gmail.js).

app.use('/gmail', gmail)

в настоящее время, на всех маршрутах я добавляю промежуточное ПО isLoggedIn вручную. Можно ли что-то сделать, чтобы все маршруты внутри него gmail.js наследовали это промежуточное ПО

1 Ответ

0 голосов
/ 12 января 2019

Промежуточные программы, которые вы регистрируете, всегда выполняются в порядке их регистрации. Так что если у вас есть такой код:

app.use((req, res, next) => {
   // middleware A
   next()
})

app.use((req, res, next) => {
   // middleware B
   next()
})

app.use(middlewareC)

app.use('/gmail', gmail)

Тогда вы наверняка сможете создать один общий файл для этих промежуточных программ до app.use('/gmail', gmail):

common.js

let router = express.Router()

router.use((req, res, next) => {
   // middleware A
   next()
})

router.use((req, res, next) => {
   // middleware B
   next()
})

router.use(middlewareC)

module.exports = router

main.js

app.use(require('./common.js'))

app.use('/gmail', gmail)

API для использования (или любого другого из этих методов регистрации) равен ([path,] callback [, callback...])

Таким образом, вы можете зарегистрировать столько промежуточного программного обеспечения, сколько вам нужно для обратного вызова, чтобы вы могли добавить isLoggedIn перед gmail маршрутизатором:

app.use('/gmail', isLoggedIn, gmail)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...