【问题标题】:Node JS Middleware Function Required需要 Node JS 中间件功能
【发布时间】:2018-05-13 06:50:25
【问题描述】:

当我运行以下命令时:

const express = require('express');
const bodyParser = require('body-parser');

const routes = require("./routes.js");

var app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.use(routes);

var port = process.env.PORT || 3000;
app.listen(port);

我明白了:

TypeError: app.use() requires a middleware function.

控制台说错误发生在app.use(routes); 中的u。但是,如果我运行:

var express = require('express');
var bodyParser = require('body-parser');
var clientSessions = require('client-sessions');

var routes = require("./routes");

var app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.use('/', express.static('./'));
app.use('/js', express.static('./public/js'));
app.use('/CSS', express.static('./public/CSS'));
app.use('/images', express.static('./public/images'));
app.use('/views', express.static('./public/views'));


app.use(clientSessions({
   secret: 'ugkgdiuwgbkbgjwjkgvo'
}));

app.use(routes);

var port = process.env.PORT || 3000;
app.listen(port);

来自另一个项目,该项目运行良好,这让我相信我当前的项目有问题。

但是我不知道是什么。我已经尝试查看与我的类似的其他几个问题,但他们的解决方案都没有帮助。提前致谢!

routes.js(根据@31piy 的请求):

var express = require("express");
var router = express.Router();

router.get("/signup",function(request,response){
    response.sendFile(__dirname + "/Client/HTML/signup.html");
});
router.post("/signup",function(request,response){

});
router.get("/login",function(request,response){
    response.sendFile(__dirname + "/Client/HTML/login.html");
});

【问题讨论】:

  • 请发./routes.js的代码。
  • @31piy 用路线代码更新了问题。谢谢
  • 检查./routes 与您的./routes.js 的区别。您不会从后者中导出任何内容。由于您没有导出,因此代码不被视为中间件。
  • @31piy 无论有没有.js,我仍然得到错误...我忘了在最后添加模块导出,感谢您的帮助

标签: javascript node.js express middleware


【解决方案1】:

您需要从 routes.js 中导出“路由器”才能使其工作。

在您的情况下,将此行添加到 routes.js 的末尾 module.exports = 路由器;

这样 app.use 将使用路由器的实际实例。

【讨论】:

    【解决方案2】:

    如果你在不同的js文件中做一个路由功能 需要将其导出,以便您的 app.js 可以使用它。 module.exports=路由器 这会有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-20
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 2015-10-08
      • 2019-11-14
      • 1970-01-01
      • 2019-10-05
      相关资源
      最近更新 更多