【问题标题】:Router.use() requires a middle function, but got an Object. module.exports = router exists on pageRouter.use() 需要一个中间函数,但得到一个对象。 module.exports = 路由器存在于页面上
【发布时间】:2018-04-30 04:04:46
【问题描述】:

来自 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;

在我拥有的每个路线页面上。 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

【问题讨论】:

  • 您的应用程序是如何运行的?使用nodemon 还是只使用node app.js
  • 您的问题在这里得到解答Answer Link

标签: javascript node.js express express-router


【解决方案1】:

我使用一个名为 C9(Cloud 9) 的 IDE,并且只使用免费服务,这意味着较低的性能和潜在的停机时间优先考虑付费 cx 的用户空间。所以我注销了我的帐户并重新登录。然后它在启动我的应用程序时清除并清理了工作区。在此之后,我能够毫无问题地预览我的应用程序。是时候升级了!我没有改变代码,没有加法或减法。这是我使用它 6 个月以来第一次看到它发生。这确实解决了这个问题。感谢所有的帮助和建议!

【讨论】:

    猜你喜欢
    • 2021-06-24
    • 2021-03-24
    • 2019-12-23
    • 2016-02-13
    • 2020-12-06
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多