Router.use() требует промежуточную функцию, но получил объект. module.exports = маршрутизатор существует на странице
Из app.js
// REQUIRE ROUTES
var commentRoutes = require("./routes/comments"),
bpostRoutes = require("./routes/bposts"),
indexRoutes = require("./routes/index");
//USE ROUTES
app.use("/", indexRoutes);
app.use("/bposts", bpostRoutes);
app.use("/bposts/:id/comments", commentRoutes);
из маршрутов /index.js
var express = require("express");
var router = express.Router();
//LANDING -root route
router.get("/", function(req, res){
res.render("landing");
});
module.exports = router;
В настоящее время я пытаюсь настроить все свои маршруты, прежде чем создавать базу данных или делать что-то значимое для блога. Когда я столкнулся с этой проблемой в первый раз, это было потому, что я не использовал
module.exports = router;
на каждой странице маршрута у меня было. Экспресс-роутер установлен и сохранен в package.json. Каждый раз, когда я сталкиваюсь с этой ошибкой, это быстрое исправление, потому что я не включил оператор экспорта. Теперь я наконец-то вспомнил, как добавить его, и я все еще получаю это сообщение об ошибке. Любые предложения и советы приветствуются!
throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
^
TypeError: Router.use() requires a middleware function but got a Object
at Function.use (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:458:13)
at EventEmitter.<anonymous> (/home/ubuntu/workspace/node_modules/express/lib/application.js:220:21)
at Array.forEach (native)
at EventEmitter.use (/home/ubuntu/workspace/node_modules/express/lib/application.js:217:7)
at Object.<anonymous> (/home/ubuntu/workspace/app.js:25:5)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:389:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:504:3
1 ответ
Я использую IDE с названием C9(Cloud 9) и использую только бесплатный сервис, что означает более низкую производительность и потенциальное время простоя, отдавая приоритет пользовательскому пространству для платного CX. Поэтому я вышел из своей учетной записи и снова вошел в систему. Затем он очистил и очистил рабочее пространство во время запуска моего приложения. После этого я смог без проблем просмотреть мое приложение. Время обновить! Я ничего не изменил в коде, никаких дополнений или вычитаний. Это первый раз, когда я видел это за 6 месяцев, когда я использовал его. Это действительно решило проблему. Спасибо за всю помощь и предложения!