当前位置: 首页 > 知识库问答 >
问题:

抛出新的TypeError(“app.use()requires middleware functions”)-表示应用程序错误

司寇嘉茂
2023-03-14

app.js(第21行->app.use(require('./controllers/login'));)

const express = require('express');
const cors = require('cors');
const bodyParser= require('body-parser');
const MongoClient = require('mongodb').MongoClient
const mongoose = require('mongoose');
const jwt = require('jsonwebtoken'); 
const app = express();

var config = require('./config'); 
var User = require("./models/user"); 

app.use(cors());
app.options('*', cors());
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());

mongoose.connect(config.database); 
app.set('superSecret', config.secret);

app.use(require('./middlewares/auth'));
app.use(require('./controllers/login'));    

app.get('/normal', function(req,res){
    res.json({
        prueba:'recibido',
        success: true
    })
})

app.listen(process.env.PORT || 8081, () => {

    })

controllers-登录,这里是问题所在。关于Express的一些我看不出来的东西:

var express = require('express');
var jwt = require('jsonwebtoken');
var auth = require('../middlewares/auth');
var apiRoutes = express.Router(); 
var User = require("../models/user");

apiRoutes.post('/authenticate',auth, function(req, res) {
    User.findOne({
        email: req.body.user.email
    }, function(err, user){

        if (err) throw err;

        if (!user){
            //res.json({success: false, message: 'No encontramos tu usuario registrado!'});
            //Crear nuevo usuario
            var newUser = new User(req.body.user);
            newUser.save(function(err){
                if(err) throw err;
                var token = jwt.sign(newUser, app.get('superSecret'),{

                });

                  res.json({
                      success: true,
                      token: token
                    }); 
                })

        }else if (user){
            var token = jwt.sign(user, app.get('superSecret'),{

            });

              res.json({
                  success: true,
                  token: token
                }); 
        }

    })
})


    apiRoutes.get('/testToken', function(req, res){
        res.json({
            msg: 'token funciona'
        })
    })

共有1个答案

邢令
2023-03-14

没有任何东西从登录控制器导出。

只需将此添加到登录控制器文件的末尾:

module.exports = apiRoutes

有关module.exports的详细信息,请参阅此问题或文档

 类似资料:
  • 我正在尝试使用rails创建新项目,但它显示错误。我正在处理mac及其显示错误 $rails新特快专递

  • 我正在尝试创建一个新的react应用程序: 安装似乎工作正常,但当我尝试的应用程序,我得到一个错误: C:\。。。\我的应用程序\node\u modules\react scripts\scripts\utils\verifyTypeScriptSetup。js:239 appTsConfig。编译器选项[选项]=值^ TypeError:无法在对象的verifyTypeScriptSetup(

  • 我已经完成了以下配置并尝试了几乎所有找到的解决方案,但没有任何帮助。当我在战争包中部署Spring启动应用程序时。没有错误记录在weblogic日志中,但应用程序抛出404错误。 web.xml weblogic.xml 应用程序属性 root-context.xml 它包含应用程序特定的配置。 应用程序开始.java 无法从pom.xml中排除tomcat服务器,因为它编译失败。在使用sprin

  • 在我的Java应用程序中,我将服务器端口保持在:8090和属性 现在,在我的浏览器中,当我打开执行器端口上的随机链接(http://localhost:9080)时,我的应用程序抛出以下错误: 在名为“Dispatcher servlet”的Dispatcher servlet 23/11/2018:18:47:54.350[http-nio-9080-exec-1]中未找到URI为[/]的HTT

  • 问题内容: 我有一个新的Rails应用程序,该应用程序是在Windows 7下通过进入目录并键入“ rails newapp”创建的。创建过程很好,当我访问根页面时,一切都很好。但是,当我尝试访问将访问数据库的页面时,得到以下信息: 在developer.log中。Mysql在我的机器上运行良好,并且我在其他目录中的其他应用程序中也正在运行,仅此一项是行不通的。有什么想法吗? 问题答案: 这是对我

  • 当某些浏览器请求我们的网站但指定HTTP头时,我们已经看到了Airbrake异常(看起来大多数是移动的)。经过一系列研究,似乎大多数面向消费者的应用程序都忽略了接受HTTP头和发送HTML,我们之前通过将其添加到文件中来修复这一问题 但后来我们的电子邮件开始以纯文本发送,我相信这是因为我们正在重新定义的工作方式。是否有更好的修复方法,使我们在有人发送头时仍然发送HTML? 编辑:我忘了说,这是我运