Node.js로 개발하면서 cafe24 Node.js 호스팅을 사용중입니다. 로컬에서는 문제가 없었는데, 자꾸 503에러가 나는 것이였어요.
Error 503 Service Unavailable
Service Unavailable
Guru Meditation:
XID: 192392972
Varnish cache server
그리고 로그를 살펴보면 toString에 뭔가 문제가 있다고 했었어요.
TypeError: Cannot read property 'toString' of undefined
at ReadFileContext.callback (/home/hosting_users/아이디/apps/앱이름/routes/index.js:8:37)
at FSReqCallback.readFileAfterOpen [as oncomplete] (fs.js:239:13)
/home/hosting_users/아이디/apps/앱이름/routes/index.js:7
if(err) throw err;
아마도 json 데이터를 읽어와서 pug 파일에 뿌려주는 부분이 있었는데 그 부분에서 에러가 난 듯했습니다. json 파일 없이 하면 잘 되는데 json파일을 읽어들이면 똑같은 에러가 났어요.
몇시간 붙잡고 있다가... 일단 한숨자고~ 오늘 해결했습니다. 역시 구글 검색...!!! ㅠㅠ
무엇이 문제였냐면....
json파일을 읽어들일 때, 절대 경로를 써주지 않아서 였습니다!!
router.get('/', function(req, res, next) {
fs.readFile('/home/hosting_users/아이디/apps/앱이름/public/js/example.json', (err, data) => {
if(err) throw err;
const results = JSON.parse(data.toString('utf8'));
res.render('index', { title:"WEB Designer", results });
});
});
fs.readFile 부분에 파일의 패스 부분을 처음에는 /js/example.json 이렇게만 적었었지요... (ㅠㅠ)
상대 경로는 적용이 안되고~ 반드시 절대경로를 사용하세요~!
cafe24의 절대경로는
/home/hosting_users/아이디/apps/아이디_앱이름/~~
(2023.04.26 수정)
아이디_앱이름 : 예시를 보여드립니다.
아이디 : apple
앱이름 : coffeeApp 이라면
apple_coffeeApp (아이디_앱이름)
어제까지 안되던거 해결하니까~오늘도 오늘도 눈물이 나려고 해요....(ㅠㅠ)
도움 받은 블로그 :
https://blog.naver.com/y2kelvin/220857216670