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

TypeError:app.use()需要中间件函数

於宏大
2023-03-14
var express= require('express');
var bodyParser= require('body-parser');
var morgan = require('morgan');
var config=require('./config');
var app= express();
var mongoose=require('mongoose');
//var User=require('./database/user')
mongoose.connect('mongodb://localhost:27017/db',function(err){
    if(err){
        console.log(err);
    }
    else{
        console.log("connected!");
    }
});

app.use(bodyParser.urlencoded({extended: true })); //if false then parse only strings
app.use(bodyParser.json());
app.use(morgan('dev'));//log all the requests to the console
var api=require('./app/routes/api')(app,express);
app.use('/api',api);
app.get('*',function(req,res){
    res.sendFile(__dirname + '/public/views/index.html');
});   // * means any route

app.listen(config.port,function(err){
    if(err){enter code here
        console.log(err);
    }
    else{
        console.log("The server is running");
    }
});
module.exports = router;
var User = require('../models/user');
var Event = require('../models/event');
var config = require('../../config');
var secret = config.secretKey;

module.exports = function (app, express) {
    var api = express.Router();
    app.use()

    api.post('/signup', function (req, res) {
        var user = new User({
            name: req.body.name,
            username: req.body.username,
            password: req.body.password
        });
        user.save(function (err) {
            if (err) {
                res.send(err);
                return;
            }
            res.json({
                message: 'User created!'
            });
        });

    });

    api.get('/users', function (req, res) {
        User.find({}, function (err, users) {
            if (err) {
                res.send(err);
                return;
            }
            res.json(users);
        });
    });

    api.post('/eventfeed', function (req, res) {
        var event = new Event({
            name: req.body.name,
            location: req.body.location,
            description: req.body.description,
            price: req.body.price,
            rating: req.body.rating
        });

        event.save(function (err) {
            if (err) {
                res.send(err);
                return;
            }
            res.json({
                message: 'Event created!'
            });
        });
    });

    // utility function for sorting an array by a key in alpha order
    api.get('/sortby_price', function (err) {
        if (err) return err;
            // utility function for sorting an array by a key in parsed numeric order
        else {
            function sortArrayNum(arr, key) {
                arr.sort(function (a, b) {
                    return parseInt(a[key], 10) - parseInt(b[key], 10);
                });
            }

            var dicts = EventSchema.saved;
            for (var i = 0; i < dicts.length; i++) {
                var terms = dicts[i].terms;
                sortArrayNum(terms, "price");
            }
        }
        return api;
    });
}

这是我的错误。我是第一次用这个制作网页。请帮助我这个错误说明了什么。

TypeError:app.use()需要中间件函数
在EventeMitter.use(c:\users\my APY\webstormProjects\main\node_modules\express\lib\application.js:209:11)
在module.exports(c:\users\my LAPY\webstormProjects\main\app\routes\api.js:10:9)
在object。(c:\users\my lapy\webstormprojects\main\server.js:20:36)
在module._compile(module.js:460:26)
在object.module._extensions.js(module.js:478:10)
在module.load(module.js:355:32)
在function.module._load(module.js:310:12)
在function.module.js:501:10)

共有1个答案

谢洛城
2023-03-14

当我离开的时候我有这个问题

module.exports = router;

在我的routes.js中,我们需要导出所有的路由。

在server.js中,我有

var mainRoutes = require('./Routes.js')
app.use(mainRoutes)
 类似资料:
  • 我正在使用NodeJS创建博客,并遵循本教程https://vegibit.com/node-js-blog-tutorial/但现在我卡住了,它给我的应用程序上的错误。使用('express-edge')这是我的代码 我的错误看起来像[nodemal]启动C:\用户\91762\桌面\博客\node_modules\快递\lib\application.js:210抛出新的TypeError('

  • 问题内容: 我正在尝试加速我的代码,这部分给我带来了问题, 我尝试使用Cython,然后按照此处给出的建议进行操作,但是我的纯python函数的性能优于cython和cython_optimized函数 cython代码如下: 然后,我运行以下命令: 结果如下: 对于纯python: 对于非优化的cython: 对于优化的: 我究竟做错了什么 ? 谢谢你的帮助, 问题答案: 使用Numba的解决方

  • 问题内容: 我正在学习带有快速模板引擎的node.js,正在遵循udemy课程“通过构建10个项目来学习node.js”,而在讲座中,当教授开始运行时,我的弹出错误指示 app.use需要 我尝试过的 中间件功能 匹配的代码及其相同。请帮助我解决错误,我已经在这里停留了几个小时,尝试了许多修改,但对我不起作用。 当我尝试运行“ npm start”时,弹出以下错误 TypeError:app.us

  • 问题内容: 新版本的express中对中间件进行了一些更改,并且围绕该问题的其他一些帖子,我对代码进行了一些更改,但我束手无策。 我们已经事先进行了工作,但是我不记得发生了什么变化。 app.js 似乎由于版本控制原因,此问题的答案已更改。感谢Nik 问题答案: 如果您使用的是高于2.x的express,则必须像以下代码一样声明app.router。请尝试替换您的代码 与 谢谢 注意: app.r

  • 问题内容: 除了* 使用如下所示的反射检查 之外 ,是否有任何方法 要求 类具有默认(无参数)构造函数?(以下方法可以工作,但是很hacky,反射速度很慢) * 问题答案: 您可以为此构建一个注释处理器。注释处理器是在编译时运行的编译器插件。它们的错误显示为编译器错误,甚至可能停止构建。 这是一个示例代码(尽管我没有运行它): 如果引入注释(例如RequiresDefaultAnnotation)

  • 问题内容: 我对此代码有疑问:https : //github.com/reactjs/redux/blob/master/examples/async/containers/App.js 特别: 我猜这是一个两部分的问题。 为什么我需要将句柄更改设置为类的实例,我不能只对handleChange使用静态函数并直接在类中调用它 ? 我不知道这是怎么回事: 谢谢 问题答案: 以相反的顺序回答… 返回