분류 전체보기 (24) 썸네일형 리스트형 multer 배열[] 설정 오류: TypeError: fields.forEach is not a function 멀터에서 fields를 사용하는데 아래와 같은 오류가 났다. TypeError: fields.forEach is not a function 일단 is not a function은 "인식을 못한다"는 뜻이다. 그렇다면, fields.forEach is not a function 는 fields를 사용할때 하나씩 forEach를 사용하려고 하는데, 지금 forEach를 사용할수 있게 설정이 안되어있다는 뜻이다. 정확한 이유는 멀터 설명서를 보고 알았다. 멀터에서 fields는 [ ]array 형태로 받는다는 것이다. 내가 기존에 오류가 났을때 작성한 코드 수정한것: fields 안의 내용을 배열 [ ]array에 묶어서 내용을 넣어 주었다. 결론? 멀터에서 fields를 쓰려면 배열 안에 넣어주자. 기존에 .. [멀터란? multer] npm 설명서를 보고 이해해보자. 멀터. 최근에는 다들 멀터s3를 사용하지만, 그래도 멀터라는 기본 기능을 알기 위해서는 가장 베이직한 멀터가 어떤 원리로 이용이 되는지를 알아야 s3로 응용도 쉬울것이다. 그래서 처음으로 멀터를 사용하는 사람들이 이해하기 쉽도록 npm에 설명되어있는 멀터의 내용을 기반으로 핵심적인 내용들을 정리하려고 한다. 일단, 멀터라는 것은 "사진"을 업로드 할때 쓰는 npm이다. 원래 프론트, 백엔드 사이에서 글자인 내용을 주고 받기 위해서도 몇 가지 설정이 필요하다. 프론트: form method="POST" 백엔드: express.urlencoded({extended:true}) 이 설정을 쓰지 않으면 상대가 영어로 말하는데, 나는 한국어만 할줄 아는것과 똑같다. = 둘 사이에 의사소통이 안된다. -> expr.. [morgan()=> morgan("dev")로 수정]morgan deprecated default format: use combined format morgan을 사용하려고 하는데 아래처럼 deprecated라고 떴다. morgan deprecated undefined format: specify a format src\server.js:16:37 morgan deprecated default format: use combined format src\server.js:16:37 오류가 난 이유: const logger = morgan() 이렇게 호출함. ==> morgan에 포맷을 지정해주지 않음. 오류 해결:morgan("dev") 추가 ==> morgan에서는 "combined"를 추가하라고 추천해주었다. morgan("combined") morgan deprecated default format: use combined format src\se.. session : secret/resave/saveUninitialized 쓰는 이유 사용한 npm : express-session 신기하게, session사용하면서 안에 아무런 내용도 입력을 안했더니 이렇게 터미널 창에 입력하라고 안내가 나왔다. resave, saveUninitialized, secret 3개옵션을 설정하라는 것이었다. 내가 보면서 클론 코딩하고 있는게 아래 였는데, 딱 3개 다 입력이 되어있었다. secret: 내가 설정하는 시크릿 코드(아무거나 써도됨) resave: request 때마다 계속 세션 새로고침할거야? true - 응 새로운 리퀘스트 때마다 세션 새로 줘 (현재 deprecated됨) false - 아니, 한번 받은 세션은 그대로 둘게 ==> 대부분 false를 쓰기 떄문에 true는 deprecated된 상태. saveUninitialized: tru.. export const app = express();은 왜 안될까?, TypeError: Cannot read properties of undefined (reading 'listen') 코딩하다가 그냥 남기는 의문점. 아직 이유는 잘 모르겠다. 검색해도 나오질 않는다. db연결하는 부분을 따로 분리했는데, 아래처럼 코드를 작성했다. 하지만 신기하게도 export const app = express();로 직접 export하면 오류가 난다. 오류 _server["default"].listen(3333, function () { ^ TypeError: Cannot read properties of undefined (reading 'listen') 내가 생각한 몇가지 원인 - const app을 계속해서 같은 파일에서 사용해서 그런건가? - app =express() 자체가 대괄호로 함수를 바로 호출하는 거니까, 바로 호출하는 함수가 포함되어 있어서 안되는걸까? 아무튼 export defa.. mongoose.Schema에 new를 붙이는 이유 몽구스에스 스키마 모델을 만들때 왜 new를 붙여야 할까? new를 안붙여도 작동을 하길래, 왜 굳이 붙여야 할까 궁금했다. 한줄요약 - new를 안붙여도 작동은 한다. - 하지만 new를 붙이는 것이 올바른 방법이다. 공식 문서에서 new 붙여서 쓰라고 하니까 그렇게 써라. - Schema가 생성자 이기 때문에 new키워드를 붙여야 한다. 항상 공식 문서를 참고하자. 참고 https://mongoosejs.com/docs/api/schema.html#Schema() https://stackoverflow.com/questions/59870635/what-is-the-difference-between-mongoose-schema-and-new-mongoose-schema https://dailytaeho.. [프론트 설정/ 백엔드 설정 express.urlencoded true, express.json] TypeError: Cannot read properties of undefined 프론트에서 정보를 보내는데 못받아오는 오류가 생겼다. TypeError: Cannot read properties of undefined (reading 'email') body의 내용을 못 읽어 와서였다. 일단 프론트쪽 설정 1. 프론트에서 정보를 받아올때 from에 꼭 method="post"로 설정을 해 두어야지 된다고 들었어서, 프론트엔드 쪽에 문제는 아닌듯 했다. 2. 그리고 input은 꼭 name을 붙여주어야 한다고 해서 name을 붙여둔 상태. ****** 백엔드와 프론트엔드에서 이어주는 부분이 바로 name이다. ****** 만약 프론트 name과 백엔드에서 받아오는 명칭이 다를경우 이름이 다른 부분은 undefined로 내용을 읽어오지 못한다. 백엔드 설정: 아래 코드 입력해주기 app.. [db.on, db.once 에러]TypeError: The "listener" argument must be of type function. Received undefined // ()=>{}화살표 함수 안에 넣어주어 해결 db 연결을 하는데 이런 에러가 떴다. TypeError: The "listener" argument must be of type function. Received undefined 원인: db.on을 쓰려면 두번째 인자에 콜백함수를 넣어야 한다. db.on('error', 콜백함수) 그런데 나는 그냥 그 자리에 console.log를 넣었더니 오류가 났다. 여기서 db.on / db.once 의 의미: https://stackoverflow.com/questions/49607841/mongoose-connectiononce-what-does-it-mean when you use 'once' it signifies that the event will be called only once i.e the fi.. [dotenv import 오류] MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string. 몽고디비를 연결하려고 하는데 이런 에러가 떴다. MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string. 에러 해석: mongoDB connect할때 string이 와야 하는데 지금 들어가 있는 값은 string이 아니라 undifined다. MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first para.. mongodb에서 useNewUrlParser, useUnifiedTopology 쓰는 이유 몽고디비를 쓸때 useNewUrlParser useUnifiedTopology 이 두개는 항상 true로 해야 한다고 하고 그냥 그대로 따라 하기는 하는데, 왜 하는지 궁금했다. mongoose.connect(process.env.DB_URL, { useNewUrlParser: true, useUnifiedTopology: true, }); 왜 쓰는지 검색해보니, useNewUrlParser: 몽고디비에서 쓰는 parser를 이제 안쓰는데, (새로운 parser로 대체됨) 만약 새로운 파서에서 에러가 날 경우 예전에 쓰는 parser로 롤백 할수 있게 하기 위해서 라고 한다. useNewUrlParser - The underlying MongoDB driver has deprecated their cur.. 이전 1 2 3 다음