我在一个节点js应用程序的控制器文件夹中创建了一个用户控制器,并尝试将其包含在我的路由中,并且我不断收到此错误消息,它正常工作,然后突然决定不这样做,我我已经彻底查看了可能导致故障的任何可能的事情。
这是错误
Error: Route.get() requires callback functions but got a [object Undefined]
以下是文件
控制器文件./controller/user.js
// controller/user.js file
exports.login = function(req, res){
res.render('auth/login');
}
exports.register = function(req, res){
res.render('auth/register');
}
exports.reset = function(req, res){
res.render('auth/reset');
}
路由文件./config/routes.js
// routes.js
var user = require('../controllers/user');
var home = require('../controllers/home');
module.exports = function(app){
// user login
app.get('/app/login', user.login);
// user registration
app.get('/app/register', user.register);
// user password reset
app.get('/app/reset', user.reset);
}
app.js
// ./app.js
const express = require('express');
const bodyParser = require('body-parser');
const path = require('path');
const expressValidator = require('express-validator');
const app = express();
const PORT = 3000;
// const logger = function(req, res, next){
// console.log('Loggin');
// next();
// };
// app.use('logger')
// View Engine
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
// Body parser middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
// Static path
app.use(express.static(path.join(__dirname, '/public')));
// Global Vars
app.use(function(req, res, next){
res.locals.errors = null;
next();
});
// Routes
require('./config/routes')(app);
app.listen(PORT, function(){
console.log('Server started on port ' + PORT);
});
答案 0 :(得分:0)
您需要在route.js文件中调整控制器的路径。
您正在引用require('../controllers/user')
而不是require('../controller/user')
,也许您还需要修复家庭控制器的路径。