Router.use() 需要一个中间函数,但得到了一个对象。 module.exports = 页面上存在路由器
Router.use() requires a middle function, but got an Object. module.exports = router exists on page
来自 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);
来自 routes/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;
在我拥有的每个路线页面上。 Express 路由器已安装并保存到 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
我使用 IDE 称为 C9(Cloud 9)并且只使用免费服务,这意味着较低的性能和潜在的停机时间优先考虑用户 space 付费 cx。所以我注销了我的帐户并重新登录。然后它在启动我的应用程序时清除并清理了工作space。在此之后,我可以毫无问题地预览我的应用程序。是时候升级了!我没有改变代码,没有增加或减少。这是我使用它 6 个月以来第一次看到它发生。这确实解决了问题。感谢大家的帮助和建议!
来自 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);
来自 routes/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;
在我拥有的每个路线页面上。 Express 路由器已安装并保存到 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
我使用 IDE 称为 C9(Cloud 9)并且只使用免费服务,这意味着较低的性能和潜在的停机时间优先考虑用户 space 付费 cx。所以我注销了我的帐户并重新登录。然后它在启动我的应用程序时清除并清理了工作space。在此之后,我可以毫无问题地预览我的应用程序。是时候升级了!我没有改变代码,没有增加或减少。这是我使用它 6 个月以来第一次看到它发生。这确实解决了问题。感谢大家的帮助和建议!