我知道使用新的express 4路由器,我们可以将多个路径路径组织成不同的文件,如下所示:
Scanner sc = new Scanner(System.in);
// open file and prompt for file name
System.out.print("Enter a file name: ");
String fileName = sc.nextLine();
File infile = new File(fileName);
Scanner readIt = new Scanner(infile);
//prints <greeting> of text file. Ex. hello|howdy|etc...
String greeting = readIt.nextLine();
greeting.split("|");
System.out.println(greeting);
现在我想知道我是否在// In cars.js
const router = express.Router();
router.get('/brands', function(req, res) { ... });
router.get('/models', function(req, res) { ... });
module.exports = router;
// In animals.js
const routerTwo = express.Router();
routerTwo.get('/domestic', function(req, res) { ... });
routerTwo.get('/wild', function(req, res) { ... });
module.exports = routerTwo;
// In main.js
app.use('/cars', router); // matches `/cars/brands`, `/cars/models`.
app.use('/animals', routerTwo); // matches `animals/domestic`, `animals/wild`.
和express.Router()
文件中仅使用express()
更改cars.js
,它会起作用,因为它们都充当了新的实例express()我们称之为mini-app。那么新的animals.js
对象有什么用?
express.Router()
对象中暴露的相同方法及其功能是否可通过多个express.Router()
实例(如模块化路由器处理程序等)实现?
答案 0 :(得分:1)
简单来说,路由器是快速应用程序的轻量级版本,或as Express docs put it,一个迷你快递应用程序。
全局快递对象附带了更多资源来支持视图和各种设置,而路由器基本上提供了 <div class="mdl-layout__drawer">
<span class="mdl-layout-title">SITE NAME</span>
<nav class="mdl-navigation">
<a class="mdl-navigation__link" href="">Link</a>
<a class="mdl-navigation__link" href="">Link</a>
<a class="mdl-navigation__link" href="">Link</a>
<a class="mdl-navigation__link" href="">Link</a>
</nav>
</div>
,.use
,.get
和{{1}等路由API }。路由器对象代表中间件和路由的隔离实例,并且只能执行中间件和路由功能,这使其非常适合有效地模块化路由处理。
现在我想知道我是否在cars.js和animals.js文件中仅使用
.param
更改了route
,它会起作用,因为它们都是快递的新实例( )我们称之为mini-app。那么新的express.Router()
对象有什么用?
好吧,你应该仍然可以使用express()
而不是express.Router()
来进行隔离路由,但是你也可以带来很多额外的代码,你可能不会使用它们&# 39;不必要的开销。
这就是创建express()
的原因:提供路由模块化而无需创建额外应用的开销。
相关:https://en.wikipedia.org/wiki/Liskov_substitution_principle