2017-07-30 3 views
0

ノードのjsアプリケーションのコントローラフォルダ内にユーザコントローラを作成し、それを私のルートに含めると、このエラーメッセージが表示され続けています。突然それが決まっていないと判断したので、誤動作の原因となる可能性のあるものはすべて徹底的に調べました。ここルートにコントローラを必要とするエラー[nodejs]

はエラー

Error: Route.get() requires callback functions but got a [object Undefined] 

であり、以下のファイルが

コントローラファイルが

// 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'); 
} 

routesファイルが

を./config/routes.js ./controller/user.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

アプリケーションでこの関数をどのように呼び出していますか?*** module.exports = function(app)***すなわちどこでどのように呼び出すのですか? – SKSpall

+0

ここでapp.jsファイル内で呼び出されました // ./app.js 質問に追加 – blakroku

答えて

0

route.jsファイルのコントローラへのパスを調整する必要があります。

require('../controller/user')の代わりにrequire('../controllers/user')を参照していますが、ホームコントローラのパスを修正する必要があるかもしれません。

関連する問題