我尝试根据它们的路由在多个文件中重构我的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个函数在多个文件中重构我的路线?有没有办法导出这些功能?
感谢您的帮助,
答案 0 :(得分:0)
创建一个文件config.js或middleware.js,然后将其导入并在您的路由中使用。