오류 발생! 그러나 극복(!) 2

2023. 10. 18. 12:20오류 극복기

하하 다시 공부한지 별로 안되었는데 벌써 많은 오류들을 보았다,,, 

당황스러웠지만 그래도 이런 오류도 있구나,, 싶고 다음에도 이런 오류를 봤을때 잘 해결해나가게끔!!

함 열심히 해봐야지

 

우선, 

ERROR: CANNOT FIND MODULE

 

이런 오류가 발생하였다. 모듈이 찾을 수 없다고 한다,,, 검색해보니 저 오류는  보통 모듈이 없어서 생기는 경우로, 찾을 수 없는 모듈을 추가적으로 설치해주면 해결된다고 한다. BUT 나는 파일명이었다. Models에 속한 users.model의 파일이 읽히지 않는 것으로 추정했다.. 근데 어떻게 해야 이 오류가 더는 발생하지 않을지에 대해서는 잘 몰랐다. 일단 터미널에서 강조되는 하얀 부분을 보면 passport라는 파일에 오류가 있는 것 같아서 살펴보았다.

 

 

//passport.js
const passport = require('passport');
const User = require('../models/user.model');
const LocalStrategy = require('passport-local').Strategy;
const GoogleStrategy = require('passport-google-oauth20').Strategy;

 

음,, 뭐가 문제지 하고 passport.js 부분과 아래와 같은 server.js를 보고 고민하였다.

 

//server.js
const cookieSession = require('cookie-session');
const express = require('express');
const {default:mongooes} = require('mongoose');
const passport = require('passport');
const path = require('path')
const app = express();
const { checkAuthenticated, checkNotAuthenticated } = require('./middlewares/auth');
const User = require('../models/user.model');

 

나는 단순히 passport.js와 server.js에서 User 선언할때  '../models/user.model' 에서의 ..을 동등하게 쓰여야 되는 줄 알았다. 하지만!!!!

 

 

 

list

 

 

   .과 ..의 차이는 분명했다.....! passport.js는 user.model.js에서 상위 폴더인 models을 거쳐야 하므로 .. 이고 server.js는 현재 위치에서 상위를 가지 않아도 되는 위치에 있으므로  .으로 해도 무방하다는 것이였다.   

즉, ./는 현재 위치를 나타내고 보통 현재 위치 ./는 생략한다. 그리고 ../는 상위 경로를 나타내는 것으로 상위 경로는 현재 폴더가 속한 폴더를 가리킨다는 것이다. 이러한 것도 사소하지만 틀리면 오류가 발생할 수 있다는 것을 명심해야겠다.

 

 

passport.js 에서  ('../models/user.model') 는 이렇게, server.js에선 ('./models/user.model') 으로 바꿔주었다.

그랬더니 더는 오류가 발생되지 않았다.

 

 

$ npm run dev

> express-passport-app@1.0.0 dev
> nodemon src/server.js

[nodemon] 3.0.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,cjs,json
[nodemon] starting `node src/server.js`
http://localhost:4000
mongodb connented   

 

연결이 되었다!!!

 

다음에는 이런 오류 발생시키지 않도록 꼼꼼하게 작성하고 그냥 지나치는 것보다 이 코드는 왜 쓰는 걸까? 이거랑 이거는 왜 다르게 작성되는 걸까? 라는 한 번 이라도 더 생각을 하면서 찾아보고 공부해나가야겠다. 그래야 이런 오류를 방지할 수 있을 것이고 비슷한 이유로 이런 오류가 다시 발생했을 떄 침착하게 대처하여 해결할 테니,,, 

 

아ㅏㅏㅏ 아직 부족하다는 부분이 너무 도드러지게 나타나서 열정이 불타오른다,, 덤벼라 모조리 내가 다 공부해줄테니!