需要 Node JS 中间件功能
Node JS Middleware Function Required
当我运行以下内容时:
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);
在另一个项目中,该项目运行良好,这让我相信我当前的项目有问题。
但是我想不通是什么。我已经尝试查看其他几个与我的问题类似的问题,但他们的 none 解决方案有所帮助。提前致谢!
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 导出“路由器”才能正常工作。
在你的情况下,在 routes.js 的末尾添加这一行
module.exports = 路由器;
这样 app.use 将使用路由器的实际实例。
如果你在不同的js文件中制作路由器功能
需要导出它以便您的 app.js 可以使用它。
module.exports=路由器
这将有助于
当我运行以下内容时:
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);
在另一个项目中,该项目运行良好,这让我相信我当前的项目有问题。
但是我想不通是什么。我已经尝试查看其他几个与我的问题类似的问题,但他们的 none 解决方案有所帮助。提前致谢!
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 导出“路由器”才能正常工作。
在你的情况下,在 routes.js 的末尾添加这一行 module.exports = 路由器;
这样 app.use 将使用路由器的实际实例。
如果你在不同的js文件中制作路由器功能 需要导出它以便您的 app.js 可以使用它。 module.exports=路由器 这将有助于