Express.js使用路由器与App.use路由的好处?

根据Express文档 , app.use和Router都实现了路由器接口,可以同时作为中间件。

所以基本上你可以通过做定义路线

 app.use(function (req, res, next) { next(); }) 

或者你也可以做

 var router = express.Router(); router.get('/', function (req, res, next) { next(); }) app.use(router); 

我只是想知道是否有一个原因,我会在应用程序使用路由器? 我唯一能find的就是我需要与我的params保持一致。 只是好奇。

使用路线可以帮助您在Express / Node中组织您的代码。

当我在JSON中有特定的发布请求时,这就是我使用它的方式,但并不是所有进入的请求都是JSON,所以我只能在这个实例中parsingJSON,然后回应:

自行使用应用程序:

  app.use("/search", bodyParser.json()); app.post("/search", function(request, response) { params= request.body; getSearchResults(params.words, params.numbers, response); }); 

使用特定路由器的应用程序:

  var jsonPostRouter= express.Router(); jsonPostRouter.use(bodyParser.json()) jsonPostRouter.use( function(request, response) { var params= request.body; getSearchResults(params.words, params.numbers, response); }); app.use("/search", jsonPostRouter); 

然后我可以把路由器代码放在一个单独的模块中,只需要app.use("/search", jsonPostRouter); 在我的主要服务器代码,这有助于保持我的代码组织和更容易遵循。