2016-10-19 4 views
2

양식에서 데이터를 가져올 때까지 코드가 제대로 작동 할 때까지는 expressjs를 사용하고 이미 신체를 인식합니다. 이미 사용 에로 내가Expressjs Body-Parser : "TypeError : 정의되지 않은 속성 'name'을 읽을 수 없습니다. - 이미 모든 이전 항목을 검토했습니다.

TypeError: Cannot read property 'name' of undefined 
at e:\2016\passport\controllers\users.js:20:23 
at Layer.handle [as handle_request] (e:\2016\passport\node_modules\express\lib\router\layer.js:95:5) 
at next (e:\2016\passport\node_modules\express\lib\router\route.js:131:13) 
at Route.dispatch (e:\2016\passport\node_modules\express\lib\router\route.js:112:3) 
at Layer.handle [as handle_request] 

내 app.js를 얻을

: 내가 router.post를 사용할 때 -parser하지만 난이 오류가 (() 함수를 '/ 등록') 본체 파서

,

라우터 파일, 난 내 EJS이

<pre> 
<form method="post" action="https://stackoverflow.com/users/register"> 
    <input type="text" name="name">   
    <input type="text" name="username"> 
    <input type="email" name="email"> 
<button type="submit" >Submit</button> 
    </form> 

</pre> 

답변

2

body-parser 전에 './controllers'가 필요합니다! 요청 본문을 구문 분석하고 req에 첨부하려면 컨트롤러 앞에 body-parser를 호출해야합니다.

+0

내 질문에 대답 해 주셔서 감사합니다. 내 시간을 절약하십시오. – Mvrk

3

마지막으로 라우터를 설정하십시오 파일

router.post('/register',function(req,resp){ 

    var name= req.body.name; 
    var username= req.body.username; 
    var email= req.body.email; 
    var password= req.body.password; 
    var password2= req.body.password2; 
    resp.render('register'); 

    }); 

이 경로를 게시 할 때가 ## 내가 오류 메시지를 받았습니다 users.js 또는 bodyParser가 실행되기 전에 확실히 확인하십시오.

+0

내 질문에 대답 해 주셔서 감사합니다. 내 시간을 저장했습니다. – Mvrk

+0

감사합니다. 나는 3 시간 동안 이것을 소홀히했습니다. –