我试着重构我的
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))
})
我的问题是:如何用这两个函数重构多个文件中的路由?有办法导出这些函数吗?
谢谢你的帮助,