这个错误是什么意思,我将如何解决它:抛出新的TypeError('app.use()需要一个中间件函数')?



我试图创建一个登录页面和注册页面,我的app.js给了我这个错误,我认为这是这段代码的最后一行。我可以给你发送这个快递应用程序的其他组件(文件)。我不明白是什么导致这个错误。

const express = require('express');
const mongoose = require('mongoose');
// Routes
const authRoutes = require('./routes/authRoutes');
const app = express();
// middleware
app.use(express.static('public'));
app.use((err, req, res, next) => {
res.locals.error = err;
res.status(err.status);
res.render('error');
});
// view engine
app.set('view engine', 'ejs');
// database connection
const dbURI = '<database, username and password>';
mongoose.connect(dbURI, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex:true })
.then((result) => app.listen(3000))
.catch((err) => console.log(err));
// routes
app.get('/', (req, res) => res.render('home'));
app.get('/smoothies', (req, res) => res.render('smoothies'));
app.use(authRoutes);

authRoutes.js

const { Router } = require('express')
const authController = require('./authController.js')

const router = Router();
router.get('/signup', authController.signup_get);
router.get('/signup', authController.signup_post);
router.get('/login', authController.login_get);
router.get('/login', authController.login_post);
module.export = router;

authController.js

module.exports.signup_get = (req, res) => {
res.render('signup');  
}
module.exports.login_get = (req, res) => {
res.render('login');  
}
module.exports.signup_post = (req, res) => {
res.send('signup');  
}
module.exports.login_post = (req, res) => {
res.send('login');  
}

您在authRoutes.js中导出错误。

改变:

module.export = router;

:

module.exports = router;

仅供参考,通过简单地执行console.log(authRoutes),您自己进行一些调试应该能够向您展示在哪里查找问题。如果你得到一个错误,当你试图使用authRoutes,你看看它是什么,它来自哪里,看看为什么它不工作。这是基本的调试,我们希望你在发布问题之前已经完成了基本的调试。

相关内容