Firebase 在express中,他们为什么使用app和main?
我当时在跟踪一个程序,发现了这个代码Firebase 在express中,他们为什么使用app和main?,firebase,express,Firebase,Express,我当时在跟踪一个程序,发现了这个代码 //initialize express server const app = express(); const main = express(); //add the path to receive request and set json as bodyParser to process the body main.use('/api/v1', app); 为什么他们同时创建app和main,为什么他们将app传递给'/api/v1'路由?看起来他
//initialize express server
const app = express();
const main = express();
//add the path to receive request and set json as bodyParser to process the body
main.use('/api/v1', app);
为什么他们同时创建
app
和main
,为什么他们将app
传递给'/api/v1'
路由?看起来他们使用的app
有点像一个子应用,其路由都以/api/v1
为前缀。这样做的通常方法是使用Express router,而不是app对象,只使用一个app,但app也是路由器,因此显然可以工作
因此,他们的main
应用程序上的路由都在顶层工作,例如/about
,而他们的app
应用程序上的路由都在/api/v1
上工作,例如/api/v1/users
更常见的方法是将顶级应用命名为
app
,然后为子应用使用路由器。您将替换:
//initialize express server
const app = express();
const main = express();
main.use('/api/v1', app);
与:
然后顶级路由进入app
对象,而api
路由进入apiRouter
对象
但是,这只是一个更普遍的惯例。任何一种方法都可以。我建议将您的问题提交给本教程的作者,以了解它们的含义。媒体有评论功能。@DougStevenson会的,谢谢!虽然我已经在几个不同的教程中多次看到了这一点,所以这似乎是相当普遍的。
const app = express(); // top level app
const apiRouter = express.Router(); // api router
app.use('/api/v1', apiRouter); // hook in api router