Javascript 如何将所有app.use放在一个单独的通用文件中
我在我的应用程序的索引/起点中有多个app.use i、 e 等等 现在,这有点让我的代码不整洁(在index.js中),所以我考虑创建一个单独的js文件(比如Javascript 如何将所有app.use放在一个单独的通用文件中,javascript,node.js,express,Javascript,Node.js,Express,我在我的应用程序的索引/起点中有多个app.use i、 e 等等 现在,这有点让我的代码不整洁(在index.js中),所以我考虑创建一个单独的js文件(比如initialize.js),它将包含我所有的应用程序。使用 到现在为止,我习惯于只创建单独的路线 const express = require('express') const router = express.Router() 然后将其导入我的index.js app.use('/auth', auth) 但这次我不想把我的路
initialize.js
),它将包含我所有的应用程序。使用
到现在为止,我习惯于只创建单独的路线
const express = require('express')
const router = express.Router()
然后将其导入我的index.js
app.use('/auth', auth)
但这次我不想把我的路线放在单独的文件中,而是放在所有的文件中
app.use()
在一个common.js文件中
其次,我还有一个从gmail(gmail.js)加载数据的路由
目前,在所有路由中,我正在手动添加一个中间件isLoggedIn
。有没有可能做点什么,让它里面的所有路由mygmail.js
继承该中间件您注册的中间件总是按照它们注册的顺序执行。如果你有这样的代码:
app.use((req, res, next) => {
// middleware A
next()
})
app.use((req, res, next) => {
// middleware B
next()
})
app.use(middlewareC)
app.use('/gmail', gmail)
然后,您可以在应用程序之前为这些中间件创建一个通用文件。使用('/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
app.use(require('./common.js'))
app.use('/gmail', gmail)
main.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
app.use(require('./common.js'))
app.use('/gmail', gmail)
用于(或任何其他注册方法)的API是([path,]callback[,callback…])
因此,您可以注册任意数量的回调中间件,因此您可以在gmail
路由器前面添加isLoggedIn
:
app.use('/gmail', isLoggedIn, gmail)
我不太清楚你在问什么。如果您编写app.use('/gmail',isLoggedIn,gmail)
则在存储在变量gmail
中的路由器之前调用中间件isLoggedIn
,并且只有在isLoggedIn
@t.niese中调用next
时,才会进行到gmail
的路由。还有一个主要问题是将所有app.use放在一个单独的文件中。请你也回答一下好吗。