Маршрутизатор.использование требует промежуточного программного обеспечения, но не определено

#node.js

Вопрос:

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

app.js

 const express = require("express");
const {router, users} = require("./routers/routers");

const app = express();
const PORT = 3000;

app.get("/", (req, res)=>{
    res.send("Home Page");
})

app.use("/users", users);

app.listen(PORT, ()=>{
    console.log("Server Started");
})
 

routers.js

 const express = require("express");

const router = express.Router();

const users = router.get("/users", (req, res) => {
    console.log("Route Created");
})

module.exports = {router, users};
 

и это та ошибка, которую я получаю

 TypeError: Router.use() requires a middleware function but got a undefined
 

Ответ №1:

Ошибка вызвана отсутствием импортированных методов из routers.js. Убедитесь, что ваши имена файлов и каталогов указаны правильно. С app.js в корневом каталоге и routers.js в /маршрутизаторах все выглядит нормально и работало, когда я запускал его локально.

Кроме того, поскольку вы задаете путь для «/пользователей» в обоих app.js и routers.js, фактический используемый путь — «/пользователи/пользователи». Предполагая, что это не было задумано, я бы предложил удалить параметр path из одного из этих методов.