Я решил проблему следующим образом: экспресс поддерживает промежуточные обработчики, промежуточный обработчик в параметрах функции обратного вызова имеет 3 pfrfmeters: req, res, next.Вам не нужно определять next, как я понимаю, express автоматически найдет следующий обработчик маршрута, который вы используете, и выполните его.очень важно поставить первый промежуточный обработчик.я пытаюсь написать что-то вроде:
app.use('/',(req,res,next) => {express.static(srcPath)})
но это не работает, возможно, потому что метод express.static является оберткой внешнего модуля serve-static
мой пример ниже работает правильно
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
var path = require('path');
var axios = require ('axios');
var app = express();
var srcPath = path.join(__dirname, '../public');
app.get('/',(req,res,next) => { //here just add next parameter
console.log('login');
next();
})
app.use('/',express.static(srcPath));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.get('/get-currencies', (req,res) => {
console.log('alo')
axios.get('http://yandex.ru/')
.then(function (response) {
console.log('recieve response');
res.send(response.data);
})
.catch((error) => {
res.send(error);
});
}
);
app.listen(3001, () => console.log('app listening on port 3001'));