以上两者的区别是什么,何时用哪一个最合适?web
区别看下面的例子:express
app.jsapp
dogs.jspost
在app.js 中调用 express() 时,返回一个app对象。ui
app对象能够看做建立了一个Express应用程序,app的做用是作一些全局的处理。spa
router是开发人员作业务处理的利器(好比你能够经过router去use你本身写的针对某个特定路由的中间件),这样的好处能够更细的划分controller,router就是一个mini的app。router能够更细的划分controller。code
“迷你应用程序”背后的想法是,应用程序中的不一样路线可能变得至关复杂,你能够从将该逻辑移动到单独的文件中获益。router
在上面这个简单的例子中,/dogs 路由的逻辑已经被移动到本身的文件中,因此它的 GET 和 POST 处理程序不会混乱 app.js。中间件
如今,你能够独立地处理对 /dog 的任何请求的逻辑,而不用担忧它将如何影响猫 /birds。对象
若是你具备与全部三条路由相关的逻辑(Express 中称为中间件),则能够将其放在 app.use(...) 调用上方的 app.js 中。
若是你有逻辑仅与其中一条路线(/dog)相关,那么你只将它放在该路由的文件中。
至于何时使用,其实上面的例子已经解释了。
若是代码很是简单,彻底能够 app.get('/',....),若是路由比较复杂,使用 express.Router() 更合适。