Почему содержимое промежуточного программного обеспечения запускается четыре раза по одному запросу из браузера - PullRequest
0 голосов
/ 11 ноября 2018

Почему console.log('First Log') запускается 4 раза за запрос?

//app.js
const express = require('express');
var app = express();

app.use((req, res, next) => {
  console.log('First Log'); // problem is here
  next();
});

app.use((req, res, next) => {
  res.send('first response from express');
});

module.exports = app;
//server.js
const http = require('http');
const app  = require('./backend/app');

var port =  process.env.PORT || 3000;

app.set('port', port);

var server = http.createServer(app);
server.listen(port);

Выход:

First Log
First Log
First Log
First Log

1 Ответ

0 голосов
/ 31 июля 2019

Промежуточное программное обеспечение может быть общим для всех путей или запускаться только на определенных путях, которые обрабатывает ваш сервер.Ниже приведен пример объявления промежуточного программного обеспечения.

var app = express();
app.use(function () {}) //added to all paths or globally
app.get('/someroute', function() {}) //added to a specific path

Ссылка: https://medium.com/@agoiabeladeyemi/a-simple-explanation-of-express-middleware-c68ea839f498

Ответ, упомянутый в комментарии @AikonMogwai, также является правильным:

The middleware works one time for each url(of the same route path): index.html, favicon.ico, *.css, etc. 
Change console.log to console.log(req.url) to see that.
...