错误:Route.get()需要回调函数,但得到了一个[object Undefined] [英] Error: Route.get() requires callback functions but got a [object Undefined]

查看:125
本文介绍了错误:Route.get()需要回调函数,但得到了一个[object Undefined]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在研究一本名为 MEAN Web开发的MEAN Stack书。到目前为止,它是一本很棒的书,但是我目前还停留在其中。我已经下载了他们提供的所有代码,因此我可以仔细检查我的工作,看来我所有的代码都是正确的。我已经搜索了类似的错误,并尝试实施这些错误的版本,但目前还没有任何工作。根据错误,这些是产生错误的文件。

I'm working through a MEAN Stack book called "MEAN Web Development". It's been a great book so far, but I'm currently stuck. I've downloaded all the code they provide so I can double check my work and it seems all my code is correct. I've searched for similar errors and tried to implement versions of those errors, but nothing has worked yet. According to the error these are the files that are producing the error.

另一条注释,当我删除列表的代码函数。只需使用 create 函数,一切都可以正常工作。但是,一旦我再次添加 list 函数,它就会中断,并给我以下错误:Return.get()需要回调。但有一个未定义的对象。

Another note, when I remove the code for the list function. Everything works fine with just the create function. But, as soon as I add in the list function again it breaks and gives me the error that Return.get() needs a callback. but got an undefined object.

users.server.controller

users.server.controller

var User = require('mongoose').model('User');

exports.create = function(req, res, next) {
var user = new User(req.body);

user.save(function(err){
    if (err) {
        return next(err);
    } else {
        res.json(user);
    }
});
};


exports.list = function(req, res, next) {
User.find({}, function(err, users) {
    if (err) {
        return next(err);
    } else {
        res.json(users);
    }
});
};

users.server.routes

users.server.routes

var users = require('../../app/controllers/users.server.controller');

module.exports = function(app) {
app.route('/users')
    .post(users.create)
    .get(users.list);
};

express.js

express.js

var config = require('./config'),
express = require('express'),
morgan = require('morgan'),
compress = require('compression'),
bodyParser = require('body-parser'),
methodOverride = require('method-override'),
session = require('express-session');


module.exports = function() {
var app = express();

if (process.env.NODE_ENV === 'development') {
    app.use(morgan('dev'));
} else if (process.env.NODE_ENV === 'production') {
    app.use(compress());
}
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());
app.use(methodOverride());

app.use(session({
    saveUninitialized: true,
    resave: true,
    secret: config.sessionSecret
}));

app.set('views', './app/views');
app.set('view engine', 'ejs');

require('../app/routes/index.server.routes.js')(app);
require('../app/routes/users.server.routes.js')(app);

app.use(express.static('./public'));

return app;
}

server.js

server.js

process.env.NODE_ENV = process.env.NODE_ENV || 'development';

var mongoose = require('./config/mongoose'),
    express = require('./config/express');

var db = mongoose();
var app = express();
app.listen(3000);
module.exports = app;

console.log('Server running at http://localhost:3000/');

推荐答案

我正在读同一本书,并遇到了同样的错误。

I'm going through the same book and got this same error.

似乎该应用程序正在寻找从未显示的export.signout函数,应将其写入app / controllers / users.server.controller.js

It seems the app is looking for the exports.signout function that is never shown that should be written in app/controllers/users.server.controller.js

我只是这样写:

exports.signout = function(req, res, nest) {
};

然后按预期方式工作。

这篇关于错误:Route.get()需要回调函数,但得到了一个[object Undefined]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆