2014-07-11 3 views
0

내 몽구스 스키마 용으로 만든 속성과 관련된 Express 4에서 라우팅 문제가 발생합니다. 어떤 이유로 POST 요청을 시도 할 때 설명이 정의되지 않은 참조 오류가 발생했습니다. 내 경로 요청을 망쳤나요?정의되지 않은 모델의 라우팅 오류 모델 속성

오류 :

ReferenceError: description is not defined 
at Object.handle (/Users/user/Desktop/Projects/node/travelApp/app/routes.js:47:5) 
at next_layer (/Users/user/Desktop/Projects/node/travelApp/node_modules/express/lib/router/route.js:103:13) 
at Route.dispatch (/Users/user/Desktop/Projects/node/travelApp/node_modules/express/lib/router/route.js:107:5) 
at c (/Users/user/Desktop/Projects/node/travelApp/node_modules/express/lib/router/index.js:195:24) 
at Function.proto.process_params (/Users/user/Desktop/Projects/node/travelApp/node_modules/express/lib/router/index.js:251:12) 
at next (/Users/user/Desktop/Projects/node/travelApp/node_modules/express/lib/router/index.js:189:19) 
at next_layer (/Users/user/Desktop/Projects/node/travelApp/node_modules/express/lib/router/route.js:77:14) 
at next_layer (/Users/user/Desktop/Projects/node/travelApp/node_modules/express/lib/router/route.js:81:14) 
at next_layer (/Users/user/Desktop/Projects/node/travelApp/node_modules/express/lib/router/route.js:81:14) 
at Route.dispatch (/Users/user/Desktop/Projects/node/travelApp/node_modules/express/lib/router/route.js:107:5) 

var mongoose = require('mongoose'); 
var Schema  = mongoose.Schema; 

var DestinationSchema = new Schema({ 
    tite: String, 
    description: String, 
    topOne:  String, 
    topTwo:  String, 
    topThree: String, 
    topFour: String, 
    topFive: String 
}); 

module.exports = mongoose.model('Destination', DestinationSchema); 

routes.js을 destination.js :

module.exports = function(app, passport, Destination) { 



    app.get('/', function(req, res) { 
     res.render('index.ejs') 
    }); 

    app.get('/login', function(req, res) { 

     res.render('login.ejs', { message: req.flash('loginMessage') }); 
    }); 

    app.post('/login', passport.authenticate('local-login', { 
     successRedirect : '/profile', 
     failureRedirect : '/login', 
     failureFlash : true 
    })); 

    app.get('/signup', function(req, res) { 
     res.render('signup.ejs', { message: req.flash('signupMessage') }); 
    }); 

    app.post('/signup', passport.authenticate('local-signup', { 
     successRedirect : '/profile', 
     failureRedirect : '/signup', 
     failureFlash : true 
    })); 

    app.get('/profile', isLoggedIn, function(req, res) { 
     res.render('profile.ejs', { 
      user : req.user 
     }); 
    }); 

    app.get('/destinations', isLoggedIn, function(req, res) { 
       res.render('destinations.ejs', { 
       user : req.user 
       }); 
      }); 

    app.post('/destinations', function(req, res) { 

       var destination = new Destination(); 
       destination.name = req.body.name, 
       destination.description = req.body.description, 
       description.topOne = req.body.topOne, 
       description.topTwo = req.body.topTwo, 
       description.topThree = req.body.topThree, 
       description.topFour = req.body.topFour, 
       description.topFive = req.body.topFive; 

       destination.save(function(err){ 
        if (err) 
         res.send(err); 

        res.json({ message: 'Destination created.'}); 
       }); 

      }); 

    app.get('/logout', function(req, res) { 
     req.logout(); 
     res.redirect('/'); 
    }); 





}; 




function isLoggedIn(req, res, next) { 

    if(req.isAuthenticated()) 
     return next(); 

    res.redirect('/'); 
} 

답변

0
destination.name = req.body.name, 
destination.description = req.body.description, 
description.topOne = req.body.topOne, 
description.topTwo = req.body.topTwo, 
description.topThree = req.body.topThree, 
description.topFour = req.body.topFour, 
description.topFive = req.body.topFive; 

일부가 destination하고 일부는 description이다. 나는 그들이 위의 코드에 따라 destination이어야한다고 생각한다.

+0

예. 그게 내 문제를 해결 했어. 자동 고침에 의존하지 마십시오. – cphill

관련 문제