когда использовать app.use () в приложении Node Express - PullRequest
0 голосов
/ 14 октября 2018

Я пытался понять, когда нам нужно использовать app.use в нашем узле. Экспресс

При поиске в Интернете я наткнулся на этот ответ на reddit с указаниемРазница между app.get и app.use

На основании этого я смог суммировать следующие вещи.

app.use выступать в качестве супер-маршрута или промежуточного программного обеспечения?это означает, что он вызывается на каждом маршруте, написанном ниже / после app.use?

Кроме того, был бы признателен, если бы кто-то мог добавить больше информации / практики о app.use.

Ответы [ 3 ]

0 голосов
/ 14 октября 2018
  1. Использовать для статического пути

    //Set static path
    app.use(express.static(__dirname + '/public'));
    
  2. Использовать в качестве маршрутизатора

    //user
    app.use('/', require('./controllers/user'));
    
  3. Использовать для промежуточного программного обеспечения Handline

    //Body-parser
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({
        extended: true
    }));// Body parser use JSON data
    
  4. Использовать для пользовательского промежуточного программного обеспечения

    // force https
    app.use ( (req, res, next) =>{
        if (req.secure) {
            // request was via https, so do no special handling
            next();
        } else {
            // request was via http, so redirect to https
            res.redirect('https://' + req.headers.host + req.url);
        }
    });
    
0 голосов
/ 14 октября 2018

При использовании ExpressJS с NodeJS вы можете использовать app.get и app.use для нескольких полезных аспектов.

После инициализации вашего приложения, например let app = express();, вы можете найти ниже несколько примеров:

app.use (...)

Как вы правильно указали, это полезно для "промежуточного программного обеспечения", оно будет применяться ко всем GET, POST и т. д., которые вы указываете после слов .Например, вы можете использовать промежуточное ПО только перед GET, которые вы хотите использовать «с аутентификацией пользователя / пароля».

  • Укажите папку для статического содержимого: app.use(express.static(__dirname + "/public"));

  • Включая синтаксический анализатор для содержимого JSON: app.use(bodyParser.json());

  • Определите строку подписи «Cookie Parser»: app.use(cookieParser("Signing text example"));

  • Отдельные маршрутизаторы для ваших URL в разных файлах: app.use("/api", apiRouter); или app.use("/news", newsRouter); или app.use("/", siteRouter);

  • Для пользовательского обработчика ошибок: app.use(sites404handler); или app.use(globalErrorHandler);

app.get (...)

Говоря о app.get(...), вы указываете, какие URL будут посещаться с помощью метода GET.Но вы можете использовать несколько вариантов здесь:

  • Укажите, что у вас есть домашняя страница: app.get("/", function(req, res) { res.send("Hello world!"); });

  • Принимать запросы POST: app.post("/", function(req, res) { res.send("Hello world! With POST call."); });

  • Вы также можете отделить его в другом файле как «apiRouter.js» и включить туда: let router = express.Router(); router.route("/books").get(function(req, res) { res.send("/api/books/ called via a Router"); });

app.set (...)

Помните, что у вас также есть опция app.set(...).Это полезно, например, для определения двигателей представления, таких как рули (файлы .hbs).

Надеюсь, это поможет!

0 голосов
/ 14 октября 2018

app.get обработчик маршрута применяется к запросам GET , либо для указанных путей, либо для всех путей:

Направляет запросы HTTP GET на указанный путь с указанными функциями обратного вызова.

app.use промежуточное ПО применяется ко всем запросам , либо для указанных путей, либо для всех путей:

Монтирует указанную функцию или функции промежуточного программного обеспечения.по указанному пути: функция промежуточного программного обеспечения выполняется, когда база запрашиваемого пути совпадает с путем.

use используется для применения некоторой логики (промежуточного программного обеспечения) к конкретному маршруту или целому приложению независимо отметод запроса.

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