Я знаю, что здесь много похожих вопросов, но обещаю, что прочитал их все и не нашел решения.
Я пытаюсь написать приложение с помощью Express Router, но получаю сообщение об ошибке:
app.use() requires a middleware function
Я уже пробовал реализовать промежуточное ПО разными способами, но не смог.
Вот последняя версия моего кода (очень аккуратная):
/index.js
import express from 'express';
const app = express();
app.use((req, res, next) => {
console.info(req.method, req.url);
next();
});
app.use(require('./routes'));
/routes/index.js
import credentials from './credentials';
export default [credentials];
/routes/credentials/index.js
import express from 'express';
const router = express.Router();
router.get('/credentials', async (req, res) => {
console.info('Getting credentials...');
});
export default router;
Кто-нибудь может помочь мне найти проблему?
@AbhaySehgal Я фактически передаю массив, который нужно добавить в app.use моего индекса. Когда мне требуется напрямую /routes/credentials/index.js, я получаю эту ошибку: Router.use() requires a middleware function but got a Object.
Я думаю, это потому, что nodejs использует commonjs, поэтому вам нужно использовать module.export вместо экспорта по умолчанию
Замените экспортный маршрутизатор по умолчанию на module.export = router
@AbhaySehgal Я только что ответил на свой вопрос: stackoverflow.com/a/53927036/3799550. В любом случае спасибо за ваше время.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я нашел ошибку. В моем /index.js я должен был добавить свои маршруты в router.use вместо app.use.
Вот последний код моего /index.js:
import express from 'express';
const app = express();
const router = express.Router();
router.use(require('./routes'));
app.use(router);
В файле маршрутов / индекса вы экспортируете массив с учетными данными как один элемент, но app.use ожидает функцию промежуточного программного обеспечения