【发布时间】:2015-05-19 20:18:54
【问题描述】:
我正在阅读一本名为“MEAN Web Development”的 MEAN Stack 书籍。到目前为止,这是一本很棒的书,但我现在陷入困境。我已经下载了他们提供的所有代码,所以我可以仔细检查我的工作,而且我的所有代码似乎都是正确的。我搜索了类似的错误并尝试实现这些错误的版本,但还没有任何效果。根据错误,这些是产生错误的文件。
另一个注意事项,当我删除 list 函数的代码时。仅使用create 函数就可以正常工作。但是,一旦我再次添加 list 函数,它就会中断并给我 Return.get() 需要回调的错误。但得到了一个未定义的对象。
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
var users = require('../../app/controllers/users.server.controller');
module.exports = function(app) {
app.route('/users')
.post(users.create)
.get(users.list);
};
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
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/');
【问题讨论】:
-
users.create和users.list内users.server.routes未定义。 -
@Randy 当我从
users.server.routes文件和users.server.controller文件中删除users.list代码时。该代码适用于users.create代码。但是,只要我重新添加users.list代码,就会出现错误。 -
你可能是对的。我很快扫了一眼。
-
我也意识到它们是未定义的。我不知道为什么会这样。我不确定还有什么可以尝试和更改以使错误消失。我已经从以前的问题中尝试了很多东西。
标签: javascript node.js routes