인프런 커뮤니티 질문&답변
Nothing was returned from render 에러 발생
작성
·
556
0
강사님 안녕하세요.
오랜만에 질문 남깁니다.
이번 강의를 듣던 중 에러가 발생했는데 어느 부분을 수정해야 하는지 알지 못해 질문 남깁니다.
back은 db 연결 잘 되어있고 front에서도 데이터값은 다 받아오는데
Error: MyDocument(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.
라는 에러가 발생하면서 웹페이지와 콘솔창에는 Internal Server Error가 발생했다고 뜹니다.
찾아보니 제가 무언가를 제대로 리턴하지 않거나 undefined값을 정의해서 이런 문제가 발생했다고 하는데, 어떻게 찾으면 될까요?
답변 13
1
으악!!! npx sequelize db:create하니까 DB도 생기고! 회원가입도 글 작성도 댓글도 제대로 다 써집니다! mysql 테이블에도 제대로 들어가는 것 확인했고요!!!
회원가입 새로 한 덕분에 pages/signup.js에서 import 제대로 안 된 부분도 오류 고칠 수 있었어요! 으악 너무 기뻐요!!! 강의 다시 들을 수 있어서 다행입니다ㅠㅜㅠㅜ 정말 감사해요ㅠㅠㅠㅠ
1
드디어 mysql에 접속됐습니다!
mysql 파일 전부 지우고 다시 설치한 뒤에도 서비스에 mysql 보이지 않아서
1. 관리자 명령 프롬프트 켜고 mysql --initialize --console로 임시 비밀번호 받아서
2. net start mysql해서 mysql 켜고 서비스에 mysql 돌아가는 것도 확인
3. mysql -u root -p 하고 임시 비밀번호 입력하면 mysql에 접속 됩니다!
4. 일반 명령 프롬프트에서 mysql 설치 경로(C:\Program Files\MySQL\MySQL Server 8.0\bin) 잡고mysql -h localhost -u root -p 하고 임시 비밀번호 입력하면 mysql에 localhost 커넥션이 생깁니다!
여기서 임시 비밀번호를 제가 사용할 비밀번호로 바꿔주면 커넥션에도 잘 접속이 되고요!
그런데 이제 커넥션에 들어가니 테이블도 깨끗하게 사라지고 node.js에서 접속해도 ConnectionError [SequelizeConnectionError]: Unknown database 'react-nodebird'라고 에러가 뜨네요
테이블이 전부 사라져서 그런가봅니다 허허.....
mysql 접속하는 강의부터 다시 보면서 위치 잡아야하나 봐요
그래도 mysql 접속되서 기뻐요ㅠㅠㅠ
0
0
강사님 또 왔습니다..... 저도 정말 제 선에서 해결하고 싶은데.....ㅠㅠ
보내주신 링크 토대로 서비스 부분에 mysql 등록하고 시작한 뒤 mysql 들어가서 접속하려하니 안되서, cdm 창으로 mysql 설치 경로로 들어가 mysql -u root -p 한 뒤 비밀번호 입력하면 제가 설정한 비밀번호가 틀렸다는 의미의 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)가 뜹니다.
그래서 https://wrkbr.tistory.com/623 https://wrkbr.tistory.com/263 등을 참고해서 비밀번호를 재설정하려고 해도 mysql -u root -p 이부분에서 저는 서버에 연결되지 않았다는 의미의 ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) 등이 뜨면서 mysql로 넘어가지 않습니다.
도대체 왜 mysql로 넘어가지 않는 걸까요.... 몇 시간 째 찾아봐도 도돌이표여서 글 남겨 봅니다.....
0
0
강사님 말씀대로 진행하면서 문제점을 발견하고 스텝별로 찾아봤는데 당황스러운 벽을 만났습니다.....
1. cmd에 netstat -ano 치고 3306 포트를 사용하는 mysql이 없는 걸 확인
2. cmd에 mysql -u root -p 치고 비번 쳤더니 ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) 문제 발생한 걸 확인
3. 작업관리자 - 서비스에서 mysql을 실행중으로 하면 된다길래 들어가봤는데 없...어요....
제대로 설치가 안됐나 싶어서 mysql 지웠다가 깔아도 계속 서비스에 보이질 않습니다......
설치를 했는데 보이지 않는 경우는 어떻게 검색을 해야하는지 감도 오질 않아서 자꾸 질문 드리네요 죄송해요ㅠㅠㅠ
0
먼저 mysql이 실행중인지부터 찾아보세요. cmd에서 netstat -ano 치면 쭈욱 목록이 뜨는데 3306번 포트를 사용하는 서비스가 있는지 찾아보세요. 없다면 mysql이 켜져 있지 않은 겁니다.
0
C:\Windows\System32 문자열도 넣어보고, MySQL을 지웠다가 다시 깔아도 보고,
%SystemRoot%랑 %SystemRoot%\system32에 ;을 넣어야한다는 의견도 있어서 다 해봤는데도
동일한 문제가 계속 발생합니다ㅠㅠ
제가 조금 더 알아보겠습니다ㅠㅠㅠ
0
0
Path 부분의 세 번째에 해당하는 %SystemRoot%\system32 이 부분이 C:\Windows\System32 이거에 해당하는 부분 아닌가요?
0
ConnectionRefusedError [SequelizeConnectionRefusedError]: connect ECONNREFUSED
이건 DB가 실행중이 아닌 겁니다.
저기 워크벤치 에러는 시스템 환경변수 PATH에 C:\Windows\System32가 없는 겁니다. 이거 보통은 들어있을텐데 저 에러가 뜬다면 설정해주셔야 합니다.
0
강사님께서 링크 보내주신 _document.js랑 비교하고 나서 문제점 찾고 메인 페이지에 정상적으로 접근했습니다!
그런데 이젠 ConnectionRefusedError [SequelizeConnectionRefusedError]: connect ECONNREFUSED 127.0.0.1:3306 에러가 떠서 확인해보니 MySQL에 접속되지 않은 상태네요.
구글링해보니 경로 잡아주면 된다고 해서 경고창에 있는 Settings 들어가서 PATH 잡으려도 해도 PATH를 넣는 곳이 보이지 않습니다.
힌트 얻을 수 있을까요ㅠㅠ
0
https://github.com/ZeroCho/react-nodebird/blob/master/ch7/front/pages/_document.js
이 소스랑 비교해보세요.




