Я пытаюсь выполнить рефакторинг моего app.js
файла в несколько файлов на основе их маршрутов.
Моя проблема: у моих маршрутов есть зависимости с двумя функциями, определенными в начале моего файла:
const app = express()
const cognitoExpress = new CognitoExpress({
region: '<some text>',
cognitoUserPoolId: '<some text>',
tokenUse: 'access',
tokenExpiration: 3600000
})
let cachedDb = null
function isAuthenticated(req, res, next) {
let accessTokenFromClient = req.headers.authorization
if (!accessTokenFromClient)
return res.status(401).send('Access Token missing from header')
cognitoExpress.validate(accessTokenFromClient, function (err, response) {
if (err)
return res.status(401).send(err)
res.locals.user = response
next()
})
}
function connectToDatabase(uri) {
if (cachedDb && cachedDb.serverConfig.isConnected()) {
return Promise.resolve(cachedDb)
}
return MongoClient.connect(uri, { useNewUrlParser: true })
.then(client => {
cachedDb = client.db('<some text>')
return cachedDb
})
}
И мои маршруты определены следующим образом:
app.get('/users', isAuthenticated, (req, res) => {
connectToDatabase(process.env.MONGODB_CONNECTION_STRING)
.then((db) => {
return db.collection('users').find().toArray()
})
.then(result => {
return res.send(result)
})
.catch(err => res.send(err).status(400))
})
Мой вопрос: как рефакторинг моих маршрутов в кратные файлы с этими 2 функциями?Есть ли способ экспортировать эти функции?
Спасибо за помощь,