express.Router () против express () в экспрессе - PullRequest
0 голосов
/ 15 февраля 2019

Как уже упоминалось в руководстве по экспресс-маршрутизации и в этом ответе , мы можем создать «мини-приложение» и use из основного приложения.Однако я видел код, где он использует app вместо router в модуле

app.js

var express = require('express');
var userRoutes = require('./routes/user');

var app = express();

app.use('/user', userRoutes);

module.exports = app;

маршруты / пользователь.js

var express = require('express');
var app = express(); // not express.Router() !!

app.get('/:name', function(req, res) {
  var userName = req.params.name;
  res.render('user.jade', {
    userName: userName
  });
});

module.exports = app;

Я предположил, что правильное использование в routes/user.js должно быть

router = express.Router()

вместо

app = express()

, но app = express() также работает!в чем различия и почему router = express.Router() лучше?

1 Ответ

0 голосов
/ 15 февраля 2019

Когда вы работаете с сервером, на котором есть много маршрутов, может быть неудобно оставлять их в главном файле вместе.Опция let router = express.Router() работает не так, как let app = express().

. В то время как app возвращает объект приложения, router возвращает небольшой фрагмент приложения, аналогичный app, где вы будете использовать логикупозвонить им позже на главную.

Самое важное , касающееся вашего вопроса, заключается в том, что router, который изолирован , не будет мешать другим в приложении - единая среда.

Объект маршрутизатора является изолированным экземпляром промежуточного программного обеспечения и маршрутов.Вы можете думать о нем как о «мини-приложении», способном выполнять только функции промежуточного программного обеспечения и маршрутизации.Каждое приложение Express имеет встроенный маршрутизатор приложения.

Маршрутизатор ведет себя как само промежуточное ПО, поэтому его можно использовать в качестве аргумента для app.use () или в качестве аргумента для метода use () другого маршрутизатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...