Javascript (导出)如何在express中访问控制器内部的应用程序对象

Javascript (导出)如何在express中访问控制器内部的应用程序对象,javascript,node.js,express,ecmascript-6,next.js,Javascript,Node.js,Express,Ecmascript 6,Next.js,我正在试图弄清楚如何从路由控制器访问应用程序对象。在我的路由文件中,我有 const apiController = require('../controllers/mainController') module.exports = (app) => { app.post("/stop", apiController.stopFlow ); app.post("/specificSearch", apiController.in

我正在试图弄清楚如何从路由控制器访问应用程序对象。在我的路由文件中,我有

const apiController = require('../controllers/mainController')
module.exports = (app) => {


    app.post("/stop",
        apiController.stopFlow
    );

    app.post("/specificSearch",
        apiController.initiateSearch);
}
由于某种原因,我无法访问这些控制器中的
(app)
对象,但是,如果我执行以下操作

module.exports = (app) =>{

    app.post('/stop', (req,res)=>{
        console.log(app)
    })

}
然后一切正常,所以我很好奇有没有办法将它传递给我的
apiController
?我的
apiController
如下所示

module.exports = {

    async stopFlow(req, res) {
        console.log("Stop");

        console.log(app)

    },
}
如何解决此问题?

请求对象具有以下属性:

此属性包含对使用中间件的Express应用程序实例的引用

除此之外,您还可以始终使用请求obejct和中间件传递对象,这些中间件是您在其他应该访问该对象的中间件之前注册的

app.use((req, res, next) => {
   req.theApp = app
   req.someDbConnection = dbConnection
})
然后在其他中间件/路由中:

app.post('/stop', (req,res)=>{
    console.log(req.theApp)
    console.log(req.someDbConnection)
})
您可能希望使用项目特有的命名空间来传递这些对象:

app.use((req, res, next) => {
   req.Stas = req.Stas || {}
   req.Stas.theApp = app
   req.Stas.someDbConnection = dbConnection
})
请求对象具有以下属性:

此属性包含对使用中间件的Express应用程序实例的引用

除此之外,您还可以始终使用请求obejct和中间件传递对象,这些中间件是您在其他应该访问该对象的中间件之前注册的

app.use((req, res, next) => {
   req.theApp = app
   req.someDbConnection = dbConnection
})
然后在其他中间件/路由中:

app.post('/stop', (req,res)=>{
    console.log(req.theApp)
    console.log(req.someDbConnection)
})
您可能希望使用项目特有的命名空间来传递这些对象:

app.use((req, res, next) => {
   req.Stas = req.Stas || {}
   req.Stas.theApp = app
   req.Stas.someDbConnection = dbConnection
})

在Express中,您可以从任何请求处理程序内部使用
req.app
来访问
app
对象。这是正确的解释。

在Express中,您可以从任何请求处理程序内部使用
req.app
来访问
app
对象。这解释得很对。

为什么要访问
应用程序
,我无法想象为什么在请求发生时,访问
应用程序
本身在任何方面都是必要的或有用的。似乎您试图以错误的方式解决问题。为什么要访问
应用程序
,我无法想象为什么在请求发生时,访问
应用程序
本身在任何方面都是必要的或有用的。你似乎试图用一种错误的方式来解决一个问题。这确实是我一直在寻找的,这确实是我一直在寻找的