66,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결Vue로 Nodebird SNS 만들기
질문있습니다.
강사님 store action에 아래 소스와 같이 적용하면 에러가 뜹니다. CHECK_ID({ commit }, data) { this.$axios.post('/sign/used-id', data, { withCredentials: true, }) .then((response) => { commit('SET_USER', response.data.user); commit('SET_TOKEN', response.data.token); }) .catch((err) => { console.log(err); }) }, Access to XMLHttpRequest at 'http://test.test.co.kr/api/sign/checked-id' from origin http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Credentials' header in the response is '' which must be 'true' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.이와 반대로 아래 소스와 같이 withCredentials:true를 지우면 api가 성공적으로 실행되더라구요. CHECK_ID({ commit }, data) { this.$axios.post('/sign/used-id', data) .then((response) => { commit('SET_USER', response.data.user); commit('SET_TOKEN', response.data.token); }) .catch((err) => { console.log(err); }) }, withCredentials:true를 추가해야 cors 이슈가 없는 것 아닌가요??어떤식으로 해결해야되는지 궁금합니다.답변 부탁드리겠습니다 ㅎㅎ ㅠ
- 미해결Vue로 Nodebird SNS 만들기
강사님 궁금한 점이 있습니다.
1. store action에서 try catch를 async 해주는 부분만 해주셨는데 loadComments 는 async 로 호출안하시고 loadPostsms async await으로 호출 하신 이유가 궁금합니다. 2. 보통 nuxt 프로젝트 실무에서 로그인, 로그아웃, 로그인 여부에 따른 redirect 이런 기능을 할 때 따로 쓰는 모듈?이 있나요?? 모듈을 써야 더 보안에 좋은지 따로 이점이 있는지 궁금합니다 답변 부탁드리겠습니다 ㅎㅎ
- 미해결Vue로 Nodebird SNS 만들기
v-icon이 안나와요
똑같이 작성하고 vuetify도 설치했는데 아이콘들이 모두 안나옵니다ㅜㅠ 어떻게해야할까요? 필독 사항입니다] 질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다.2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다.3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요.4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요.5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다.6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다.
- 미해결Vue로 Nodebird SNS 만들기
DOMException: Failed to execute 'appendChild' on 'Node': This node type does not support this method.
안녕하세요, 제로초 선생님. 완강하고 aws를 통해서 배포하였습니다. 배포 처음에는 실행이 잘 되다가 lambda 함수 생성이 잘 안돼서 버벅거리는 중에 이런 오류가 뜹니다. 그 이후부터는 original/ 에 있는 이미지도 뜨지 않고, 게시글 수정/삭제 메뉴버튼인 ... 버튼도 보이지 않고, 다른 페이지로 넘어가지도 않습니다. 구글링 해서 조금 찾아본 바에 의하면 nuxt에서 html 구조를 잘 인식하지 못하여 생기는 문제라고 하는데 해결책으로 nuxt.config.js에 module.exports = { build: { html: { minify: { collapseWhitespace: true, // as @dario30186 mentioned removeComments: true, // 👈 add this line }, }, }, }; 이렇게 넣으면 해결된다고 해서 넣어보았는데도 먹히지 않네요. 어떤 버튼이든 누르게 되면 이런 에러도 뜨는데, p 태그나 span 태그 쓰지 말라는 말들이 있어 전부 div 태그로 변환하였는데도 같은 문제가 발생합니다.
- 미해결Vue로 Nodebird SNS 만들기
nuxtjs/axios
제로초 강사님 안녕하세요!api 폴더를 따로 분리해서 작업하고 싶은데 api 폴더 생성 후 해당 폴더 아래 파일에서[api/test.js]this.$axios.post..위와 같이 호출하면 undefined 에러가 뜹니다.강좌 내용 처럼 store action이나 pages 폴더 아래 파일에서는 this.$axios.get... 이런식으로 호출이 가능한데 말이죠 ㅠㅠ해결 방법이 있을까요? 답변 부탁드리겠습니다 ㅠㅠ
- 미해결Vue로 Nodebird SNS 만들기
!! 연산자에 대해서.
안녕하세요, 제로초 선생님. computed 에서 liked()를 리턴할 때, !! 를 붙이는 이유에 대해서 묻고 싶습니다. 인터넷에 검색해도 안나오는데 !(not)을 두 번 붙인 건가요? !(not)!(not)이면 붙이기 전과 동일한데 굳이 붙이는 이유는 무엇인가요?
- 미해결Vue로 Nodebird SNS 만들기
pm2 nuxt prod 실행 질문있습니다
제가 지금 배울때는 저 server라는 폴더가 필요없어서 package.json 에 scripts 쪽 start 에 뭐라고 써야하는지 도저히 모르겠습니다... 일단 이렇게하면 개발모드로 실행되더라구요... 포트는 env파일로 잡았습니다 그래서 pm2 start nuxt start 해봤더니 안되구... 찾아도 안나오네요,,,,,, "start": "cross-env NODE_ENV=production pm2 start nuxt"
- 미해결Vue로 Nodebird SNS 만들기
nuxtserverinit에서 httponly 보내기
안녕하세요! nuxt.js로 실습중 궁금한것이 생겨 글을 쓰게 되었습니다. nuxtserverinit에서 axios를 이용해 httponly cookie를 서버로 부터 받으려고 하니 응답 값은 받아지지만, cookie는 받아지지 않아 해결책이 있는지 궁금합니다. PostMan프로그램 사용하면 httponly cookie가 온전히 받아지지만, nuxt.js로 만든 클라이언트에선 받아지지 않더군요(created()에선 받아집니다.). axios도 credentials=true 해주었습니다. 짧은 지식으로 고민해봤을땐, express에서 cors함수로 credentials 를 허용하는것 처럼 ssr과정에서 처리해주어야 할꺼같은데 생각보다 원활하게 진행되지 않아 해결책이 있는지 궁금합니다. 제가 시도해본건 nuxt.config.js에 servermiddleware에 미들웨어를 추가해본 것인데 잘못 생각한건지 잘못 작성한것인지 cookie를 여전히 받아오지 못했습니다. /server-middleware/cors.js const cors = require("cors"); export default function (req, res, next) { cors({ origin: true, credentials: true, }); next(); } /nuxt.config.js serverMiddleware: ["~/server-middleware/cors"],
- 미해결Vue로 Nodebird SNS 만들기
미들웨어 401에러 질문있습니다
안녕하십니까 항상 강의 잘듣고 있습니다. 다름이아니라 에러가 발생하여 문제를 해결하는데 도움을 얻고자 질문을 드립니다. 현재 ch5완료한 상태에서 페이지 로드시 401에러가 발생합니다. 프론트 콘솔 네트워크 콘솔 로그인을 안했을 시 에러가나는거고 로그인후 새로고침시 에러가발생하지않습니다. 예전글들 뒤져보다가 어느분이 같은 증상으로 질문하신분이 계셔서 답변을 보니 isLoggedIn때문이라고 되어있었고 네트워크에 저런 에러가 안뜨려면 미들웨어를 제거하고 res.json(false)나 res.json(null)로 바꾸라고 되어있는데 이 바꾸는부분이 어느부분을 지칭하는지 이해가 안됩니다. 아니면 제가 다른 문제를 가지고 해결방법을 잘못하고 있을 수 도 있다고 생각이 드는데 모르겠습니다. 네트워크상에 뜨는 에러를 뜨지 않게하려면 어떻게 해야할까요? 도움을 필요로합니다.
- 미해결Vue로 Nodebird SNS 만들기
프론트로 이미지가 넘어오지가 않습니다
안녕하세요 제로초님 5-4강좌를 다 듣고 진행중에 있는데 이미지가 업로드 되지가 않습니다 ㅜ 무슨 다른 에러는 하나도 뜨는게 없는데 네트워크 탭에 보면 Images가 비어있습니다. router.post('/images', isLoggedIn, upload.array('image'), (req, res) => { console.log(req.files) return res.json(req.files.map(v => v.filename)) }) router.post('/', isLoggedIn, async (req, res, next) => { try { const hashtags = req.body.content.match(/#[^\s#]+/g) const newPost = await db.Post.create({ content: req.body.content, UserId: req.user.id }) if (hashtags) { const result = await Promise.all(hashtags.map(tag => db.Hashtag.findOrCreate({ where: { name: tag.slice(1).toLowerCase() } }))) await newPost.addHashtags(result.map(r => r[0])) } if (req.body.image) { if (Array.isArray(req.body.image)) { await Promise.all(req.body.image.map((image) => { return db.Image.create({ src: image, PostId: newPost.id }) })) } else { await db.Image.create({ src: req.body.image, PostId: newPost.id}) } } const fullPost = await db.Post.findOne({ where: { id: newPost.id }, include: [{ model: db.User, attributes: ['id', 'nickname'] }, { model: db.Image }] }) return res.json(fullPost) } catch (err) { console.error(err) next(err) } }) 그런데 라우터 보시면 model : db.Image를 제대로 넣어놨는데 왜 안돼는지 모르겠습니다 아예 이미지를 서버로 전송 안해주나 생각해서 프론트도 봤는데 제로초님과 다른 코드는 발견하지 못했습니다 ㅜㅜ 무엇이 문제인지 피드백 받을 수 있을까요?? front/store/posts.js 의 액션 uploadImages({commit}, payload) { this.$axios.post('http://localhost:3085/post/images', payload, { withCredentials: true }) .then((res) => { commit('concatImagePaths', res.data) }) .catch((err) => { console.error(err) }) front/store/posts.js 의 뮤테이션 concatImagePaths(state, payload) { state.imagePath = state.imagePath.concat(payload) }, front/components/postcard <template> <div> <v-card style="margin-bottom: 20px"> <post-images :images="post.Images || []" /> PostImages 잘연결 해놨습니다 무엇이 문제일까요 ㅜ
- 미해결Vue로 Nodebird SNS 만들기
글작성시 문제가생겨 질문드립니다!
항상 좋은 강의 감사드립니다. 현재 ch5마지막부분을 진행중이고 로그인,글작성등 여러가지기능들을 테스트하고있습니다. 기능들은 웬만하면 정상적으로 작동이되는데 문제가 되는점이 하나있습니다. 글을 쓰면 무작위로 이전에 업로드한 사진이 같이 업로드됩니다. 예를들어 그냥 test라고만 적어도 그전에 올렸던 이미지가 갑자기 같이출력되는 현상입니다. 이미지는 해당사용자가 올렸던 이미지가 출력됩니다. 예를들어 1번사용자가 이미지들을 올렸다면 2번사용자는 글을썻을때 문제가 없고 1번사용자만 문제가 생깁니다. 이외에 다른기능에서는 기능적으로 안되는건없습니다. 에러메시지도없고 혼자서 해결하기 답답하여 질문드립니다. 어디서 문제점을 찾아야하는지 모르겠습니다
- 미해결Vue로 Nodebird SNS 만들기
이미지 불러올때 질문있습니다
항상 좋은 강의 감사드립니다 현재 강의를듣다가 문제가 발생하여 질문드립니다. 5-4이미지 저장하기 부분을 진행중이고 현재 저의상화은 로그인 후 글,이미지가 성공적으로 데이터베이스에 저장되고 글목록에 이미지와 쓴글이 뜹니다. 문제는 이미지를 불러올때 에러가 발생합니다. (그냥 글만쓸때는 해당 에러가 발생하지 않습니다) 이미지를 두개이상 업로드시 아래 에러가 발생합니다. 화면상으로는 문제가 없습니다만 아래 에러가 발생합니다. 이런식으로 에러가 발생합니다. 에러가 발생한부분을 추측해보아 store/posts.js라고 생각되어 찾아봐도 문제를 찾을 수 없었습니다. store/posts.js 코드입니다. export const state = () => ({ mainPosts: [], hasMorePost: true, imagePaths: [], }); const totalPosts = 51; const limit = 10; export const mutations = { addMainPost(state, payload) { state.mainPosts.unshift(payload); state.imagePaths = []; }, removeMainPost(state, payload) { const index = state.mainPosts.findIndex(v => v.id === payload.id); state.mainPosts.splice(index, 1); }, loadComments(state, payload) { const index = state.mainPosts.findIndex(v => v.id === payload.postId); // 실수: state.mainPosts[index].Comments = payload.data; Vue.set(state.mainPosts[index], 'Comments', payload.data); }, addComment(state, payload) { const index = state.mainPosts.findIndex(v => v.id === payload.postId); state.mainPosts[index].Comments.unshift(payload); }, loadPosts(state,payload) { state.mainPosts = state.mainPosts.concat(payload); state.hasMorePost = payload.length === limit; }, concatImagePaths(state, payload) { state.imagePaths = state.imagePaths.concat(payload); }, removeImagePath(state, payload) { state.imagePaths.splice(payload, 1); } }; export const actions = { add({ commit, state }, payload) { // 서버에 게시글 등록 요청 보냄 this.$axios.post('http://localhost:3085/post', { content: payload.content, image: state.imagePaths, }, { withCredentials: true, }) .then((res) => { commit('addMainPost', res.data); }) .catch(() => { }); }, remove({ commit }, payload) { commit('removeMainPost', payload); }, addComment({ commit }, payload) { this.$axios.post(`/post/${payload.postId}/comment`, { content: payload.content, }, { withCredentials: true, }) .then((res) => { console.log('addComment'); commit('addComment', res.data); }) .catch(() => { }); }, loadComments({ commit }, payload) { this.$axios.get(`/post/${payload.postId}/comments`) .then((res) => { commit('loadComments', { postId: payload.postId, data: res.data, }); }) .catch((err) => { console.error(err); }); }, loadPosts({ commit, state }, payload) { if (state.hasMorePost) { this.$axios.get(`http://localhost:3085/posts?offset=${state.mainPosts.length}&limit=10`) .then((res) => { commit('loadPosts',res.data); }) .catch(()=> { }) } }, uploadImages({ commit }, payload) { this.$axios.post('http://localhost:3085/post/images', payload, { withCredentials: true, }) .then((res) => { commit('concatImagePaths', res.data); }) .catch(() => { }) } }; 제가 헛다리를 짚는것인지 분명 잘적은것 같은데 에러가 발생합니다. 이 문제를 해결하기위해 도움 부탁드리겠습니다.
- 미해결Vue로 Nodebird SNS 만들기
fetch와 created
index.vue에서 fetch에 return을 넣어도 새로고침할때 데이터가 불려오지 않았습니다. 그래서 화면이 생기기전 created를 먼저 호출하니까 created에 this.$store.dispatch("post/loadPosts")를 하니까 되더군요. 혹시 두개의 차이점이 있습니까 속도라는지 메모리라든지
- 미해결Vue로 Nodebird SNS 만들기
글작성 500에러 질문드립니다
안녕하십니까 현재 제로초님 강의잘듣고있습니다. 강의를 보고 적용하던중 에러를 마주하여 질문드립니다. 현재 4-17부분 post를하는 부분을 하던중에 에러가 발생합니다. 로그인을한뒤 파일을올리고 짹짹버튼클릭시 500번대 에러가 발생합니다.. 네트워크탭에서는 두개가 같이뜨는데 204 No Content 가 먼저뜨고 500 Internal Server Error이뜹니다.. 제가 혹시오타가있을까싶어 강사님 깃허브를 통째로 붙여넣어보기도했는데 같은에러가 발생합니다. 서버도 껏다켜보고 코드도 점검해봤는데 도저히 해결이 되지않아 질문드립니다. 이후에 새로고침을하고 로그인 시도시 401에러가 발생하여 로그인도 되지않습니다 해결방법을 제시해주시면 너무감사하겠습니다
- 미해결Vue로 Nodebird SNS 만들기
vuetify 질문 있습니다
안녕하세요 제로초님 혹시 뷰티파이를 하나의 페이지만 사용할 수 있나요? 전체 페이지 적용하는게 아닌 제가 테일윈드 css framework 랑 혼합해서 사용하고 싶어서요 일단 제가 두개 다 적용해봤는데.... vuetify css가(class에 적는거라던지 color="" 이부분) 적용이 안돼더라구요 방법이 있을까요?
- 미해결Vue로 Nodebird SNS 만들기
사진 업로드중 404 not found 에러가 떠 질문 드립니다!ㅜ
안녕하세요 제로초님 ㅜㅜ 계속 피드백 주셔서 정말 감사합니다!! 강의 듣다 해결되지 않는 부분이 있어 혼자 찾던중 질문드립니다 aws-sdk와 multer-s3설치 후에 이미지를 업로드 하려 하니 404 not found 에러가 뜹니다 ㅜ 이러한 에러가 뜨는데 무엇이 문제인지 모르겠어 질문드립니다 보시다시피 s3에 sns-img라는 버킷을 만들었고 back/post.js에 AWS.config.update({ region: 'us-east-2', accessKeyId: process.env.S3_ACCESS_KEY_ID, secretAccessKey: process.env.S3_SECRET_ACCESS_KEY, }) const upload = multer({ storage: multerS3({ s3: new AWS.S3(), bucket: 'sns-img', key(req, file, cb) { cb(null, `original/${Date.now()}${path.basename(file.originalname)}`) } }), limit: {fileSize: 20 * 1024 * 1024} }) router.post('/images', isLoggedIn, upload.array('image'), (req ,res) => { console.log(req.file) return res.json(req.files.map(v => v.location)) }) 코딩 또한 제대로 입력을 하였는데 왜 404 not found라는 에러가 뜨는지 모르겠습니다 ㅜ pm2 logs --err --lines 200 를 백엔드 서버 터미널에 쳐보니 root@ip-172-31-7-245:/home/ubuntu/VUE.SNS/ch1/back# pm2 logs --err --lines 200 [TAILING] Tailing last 200 lines for [all] processes (change the value with --lines option) /root/.pm2/logs/app-error.log last 200 lines: 0|app | - /home/ubuntu/VUE.SNS/ch1/back/app.js 0|app | at Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15) 0|app | at Module.Hook._require.Module.require (/home/ubuntu/VUE.SNS/ch1/back/node_modules/require-in-the-middle/index.js:61:29) 0|app | at require (internal/modules/cjs/helpers.js:92:18) 0|app | at Object.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/routes/post.js:4:13) 0|app | at Module._compile (internal/modules/cjs/loader.js:1072:14) 0|app | at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10) 0|app | at Module.load (internal/modules/cjs/loader.js:937:32) 0|app | at Function.Module._load (internal/modules/cjs/loader.js:778:12) 0|app | at Module.require (internal/modules/cjs/loader.js:961:19) 0|app | at Module.Hook._require.Module.require (/home/ubuntu/VUE.SNS/ch1/back/node_modules/require-in-the-middle/index.js:80:39) { 0|app | code: 'MODULE_NOT_FOUND', 0|app | requireStack: [ 0|app | '/home/ubuntu/VUE.SNS/ch1/back/routes/post.js', 0|app | '/home/ubuntu/VUE.SNS/ch1/back/app.js' 0|app | ] 0|app | } 0|app | Error: Cannot find module 'aws-sdk' 0|app | Require stack: 0|app | - /home/ubuntu/VUE.SNS/ch1/back/routes/post.js 0|app | - /home/ubuntu/VUE.SNS/ch1/back/app.js 0|app | at Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15) 0|app | at Module.Hook._require.Module.require (/home/ubuntu/VUE.SNS/ch1/back/node_modules/require-in-the-middle/index.js:61:29) 0|app | at require (internal/modules/cjs/helpers.js:92:18) 0|app | at Object.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/routes/post.js:4:13) 0|app | at Module._compile (internal/modules/cjs/loader.js:1072:14) 0|app | at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10) 0|app | at Module.load (internal/modules/cjs/loader.js:937:32) 0|app | at Function.Module._load (internal/modules/cjs/loader.js:778:12) 0|app | at Module.require (internal/modules/cjs/loader.js:961:19) 0|app | at Module.Hook._require.Module.require (/home/ubuntu/VUE.SNS/ch1/back/node_modules/require-in-the-middle/index.js:80:39) { 0|app | code: 'MODULE_NOT_FOUND', 0|app | requireStack: [ 0|app | '/home/ubuntu/VUE.SNS/ch1/back/routes/post.js', 0|app | '/home/ubuntu/VUE.SNS/ch1/back/app.js' 0|app | ] 0|app | } 0|app | Error: Cannot find module 'aws-sdk' 0|app | Require stack: 0|app | - /home/ubuntu/VUE.SNS/ch1/back/routes/post.js 0|app | - /home/ubuntu/VUE.SNS/ch1/back/app.js 0|app | at Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15) 0|app | at Module.Hook._require.Module.require (/home/ubuntu/VUE.SNS/ch1/back/node_modules/require-in-the-middle/index.js:61:29) 0|app | at require (internal/modules/cjs/helpers.js:92:18) 0|app | at Object.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/routes/post.js:4:13) 0|app | at Module._compile (internal/modules/cjs/loader.js:1072:14) 0|app | at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10) 0|app | at Module.load (internal/modules/cjs/loader.js:937:32) 0|app | at Function.Module._load (internal/modules/cjs/loader.js:778:12) 0|app | at Module.require (internal/modules/cjs/loader.js:961:19) 0|app | at Module.Hook._require.Module.require (/home/ubuntu/VUE.SNS/ch1/back/node_modules/require-in-the-middle/index.js:80:39) { 0|app | code: 'MODULE_NOT_FOUND', 0|app | requireStack: [ 0|app | '/home/ubuntu/VUE.SNS/ch1/back/routes/post.js', 0|app | '/home/ubuntu/VUE.SNS/ch1/back/app.js' 0|app | ] 0|app | } 0|app | Error: Cannot find module 'aws-sdk' 0|app | Require stack: 0|app | - /home/ubuntu/VUE.SNS/ch1/back/routes/post.js 0|app | - /home/ubuntu/VUE.SNS/ch1/back/app.js 0|app | at Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15) 0|app | at Module.Hook._require.Module.require (/home/ubuntu/VUE.SNS/ch1/back/node_modules/require-in-the-middle/index.js:61:29) 0|app | at require (internal/modules/cjs/helpers.js:92:18) 0|app | at Object.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/routes/post.js:4:13) 0|app | at Module._compile (internal/modules/cjs/loader.js:1072:14) 0|app | at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10) 0|app | at Module.load (internal/modules/cjs/loader.js:937:32) 0|app | at Function.Module._load (internal/modules/cjs/loader.js:778:12) 0|app | at Module.require (internal/modules/cjs/loader.js:961:19) 0|app | at Module.Hook._require.Module.require (/home/ubuntu/VUE.SNS/ch1/back/node_modules/require-in-the-middle/index.js:80:39) { 0|app | code: 'MODULE_NOT_FOUND', 0|app | requireStack: [ 0|app | '/home/ubuntu/VUE.SNS/ch1/back/routes/post.js', 0|app | '/home/ubuntu/VUE.SNS/ch1/back/app.js' 0|app | ] 0|app | } 0|app | Warning: connect.session() MemoryStore is not 0|app | designed for a production environment, as it will leak 0|app | memory, and will not scale past a single process. 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | Warning: connect.session() MemoryStore is not 0|app | designed for a production environment, as it will leak 0|app | memory, and will not scale past a single process. 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | Warning: connect.session() MemoryStore is not 0|app | designed for a production environment, as it will leak 0|app | memory, and will not scale past a single process. 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | Warning: connect.session() MemoryStore is not 0|app | designed for a production environment, as it will leak 0|app | memory, and will not scale past a single process. 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | Warning: connect.session() MemoryStore is not 0|app | designed for a production environment, as it will leak 0|app | memory, and will not scale past a single process. 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 0|app | CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1 0|app | at IncomingMessage.<anonymous> (/home/ubuntu/VUE.SNS/ch1/back/node_modules/aws-sdk/lib/util.js:904:34) 0|app | at IncomingMessage.emit (events.js:412:35) 0|app | at IncomingMessage.emit (domain.js:470:12) 0|app | at endReadableNT (internal/streams/readable.js:1317:12) 0|app | at processTicksAndRejections (internal/process/task_queues.js:82:21) 이렇게 뜹니다 aws-sdk를 찾을수 없다 뜨는데 분명히 강의 보면서 로컬 백엔드에서 받고 원격 백엔드에서 git pull로 받았는데 왜 저렇게 뜨는걸까요? ㅜ cat post.js 해봐도 수정해서 커밋한 코드 잘 넘어와 있는게 확인됩니다!!ㅜ
- 미해결Vue로 Nodebird SNS 만들기
도메인 연결 중 잘못 연결 된것 같아 질문드립니다
안녕하세요 제로초님 ㅜ 도메인 연결중에 뭔가 잘못됬는데 에러가 다양하게 떠서 무엇이 문제인지 햇갈려 질문드립니다 ㅜ route 53을 통하여 연결을 하였고 이렇게 연결을 해놓았습니다 그런데 여기 보시면 제가 쓴글이 아닌글이 올라 와있는 페이지로 들어와 지네요 그리고 콘솔에는 처음보는 에러가 뜹니다 ㅜ 프로필 이나 로그인 버튼을 누르면 COLS에러가 뜨구요 무엇이 문제인지 어디가 잘못된건지 햇갈려 질문드립니다!ㅜ mysql 확인해봐도 분명 저런 아이디로 글을 올린 데이터는 찾아 볼수가 없습니다. 무엇이 잘못된걸까요 ㅜ 지금계속 진행 중에 있는데 ㅜ front/nuxt.config.js에 axios 설정한것을 보니 axios: { browserBaseURL: process.env.NODE_ENV === "production" ? "http://api.moonsns.com" : "http://localhost:3085", baseURL: process.env.NODE_ENV === "production" ? "http://api.moonsns.com" : "http://localhost:3085", https: false, }, 이렇게 되어있고, back/app.js에 확인해보면 const express = require('express'); const cors = require('cors') const passport = require('passport') const session = require('express-session') const cookie = require('cookie-parser') const morgan = require('morgan') const hpp = require('hpp') const helmet = require('helmet') const dotenv = require('dotenv') const prod = process.env.NODE_ENV === 'production' const db = require('./models') const passportConfig = require('./passport'); const userRouter = require('./routes/user') const postRouter = require('./routes/post') const postsRouter = require('./routes/posts') const hashtagRouter = require('./routes/hashtag') const app = express(); dotenv.config(); db.sequelize.sync(); passportConfig(); if (prod) { app.use(helmet()) app.use(hpp()) app.use(morgan('combined')) app.use(cors({ origin: 'http://vue.nodebird.com', credentials: true, })) } else { app.use(morgan('dev')) app.use(cors({ origin: 'http://localhost:3080', credentials: true, })) } app.use('/', express.static('uploads')) app.use(express.json()); app.use(express.urlencoded({ extended: false})) app.use(cookie(process.env.COOKIE_SECRET)) app.use(session({ resave: false, saveUninitialized: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, secure: false, domain: prod && '.nodebird.com', } })); app.use(passport.initialize()); app.use(passport.session()); app.get('/', (req, res) => { return res.status(200).send('hello backend') }) app.use('/user', userRouter) app.use('/post', postRouter) app.use('/posts', postsRouter) app.use('/hashtag', hashtagRouter) app.listen(prod ? process.env.PORT : 3085, () => { console.log(`백엔드 서버 ${prod ? process.env.PORT : 3085}번 포트에서 작동중`) }) 이런 식으로 설정되어 있는데 저 nodebird.com 이라는 주소가 연결한 도메인과 달라서 나타나는 증상일 수 있는건가요??
- 해결됨Vue로 Nodebird SNS 만들기
index.js의 associate 관련 오류에 대해서 질문 드리고 싶습니다.
안녕하세요. 강의 잘 듣고 있습니다. 다름이 아니라 코딩을 따라서 타이핑을 한 후, 실행을 하는데, 오류가 발견이 되어 질문을 드리게 되었습니다. 벡엔드 서버를 실행시킬 때, 12번째 줄에 있는 associate라는 속성을 읽지 못한다고 합니다. index.js에 오류가 있는 것으로 보여, 강사님 깃헙에 있는 코드를 보면서 오타가 있는지 확인 했으나, 오타는 없는 것 같습니다. 혹시 mysql의 서버나 패키지의 버전 달라서 에러가 생긴건가 해서 서버와 패키지의 버전을 다시 확인 후 실행했으나 같은 에러가 나고 있습니다. 설치한 노드 패키지의 버전도 같으며, mysql 서버의 버전 또한 5.7버전에 해당합니다. 최대한 구글링을 해보면서 해결해 보려 했지만, 검색 실력이 부족한 탓인지 해결을 하지 못하게 되었습니다. (답변에 대해 미리 감사의 말씀 드립니다.)
- 미해결Vue로 Nodebird SNS 만들기
.env 파일이 활성화?가 되지 않아서 질문 드립니다!
안녕하세요 제로초님!! .env 파일로 패스워드 설정해서 진행중에 있는데 백엔드 서버 3085번 포트에서 작동중 (node:15456) UnhandledPromiseRejectionWarning: SequelizeAccessDeniedError: Access denied for user 'root'@'localhost' (using password: YES) at ConnectionManager.connect (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\dialects\mysql\connection-manager.js:118:17) at processTicksAndRejections (internal/process/task_queues.js:93:5) at async ConnectionManager._connect (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\dialects\abstract\connection-manager.js:318:24) at async C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\dialects\abstract\connection-manager.js:250:32 at async ConnectionManager.getConnection (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\dialects\abstract\connection-manager.js:280:7) at async C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\sequelize.js:613:26 at async MySQLQueryInterface.createTable (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\dialects\abstract\query-interface.js:225:12) at async Function.sync (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\model.js:1300:5) at async Sequelize.sync (C:\Users\com\vue강좌\vuesns\ch1\back\node_modules\sequelize\lib\sequelize.js:793:35) (Use `node --trace-warnings ...` to show where the warning was created) (node:15456) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) (node:15456) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. 이렇게 비밀번호가 잘못됬다는 에러가 떠서 확인해보니 .env 파일이 아래 보시다시피 빈 파일마냥 .env 파일이 활성화가 되어있지 않습니다 ㅜ 아이콘 모양이 제로초님과 다름니다 ㅜ 구글링 해보니 root 폴더에 있어야 한다 하는데 ch1/back 폴더에 잘 위치해 있는데 왜 활성화가 안되는지 모르겠습니다 ㅜ npm i dotenv 통해서 설치도 하였고 "dotenv": "^10.0.0", config.js에 const dotenv = require('dotenv') dotenv.config(); 잘 받아왔는데 무슨 문제 인지 모르겠습니다ㅜ!
- 미해결Vue로 Nodebird SNS 만들기
양방향암호화
안녕하세요 알려주신 내용이 아니라 질문하는게 맞나 싶습니다.. 이리저리 알아보았지만 현업에서는 어떻게하는지, 실제로 양방향을 쓰는기업들도 많은지, 초보자 레벨에서 다뤄도 되는 내용이 맞는지 궁금합니다. 시간이 되실때 답변 주시면 감사하겠습니다! 이번에 사용하는 비즈니스 모델에 사용자 주민등록번호를 꼭 받아야 하는 상황입니다.. 생 주민번호 ( 7501141-1234567 ) 이런식으로 넣게되면 추후에 공격당했을때 엄청난 문제가 발생할거 같아 암호화를 고민 해보았습니다. 단방향의 경우에는 제가 주민번호를 봐야하기 때문에 진행이 안되는걸로 확인 했고, 양방향을 사용 해야만 하는것으로 보입니다. 예전에 쓰던 des방식은 취약점이 발견되서 aes를 사용해야 하며 aes는 MITM(Man In The Middle Attack) 에 취약하다고 합니다. 위에는 제가 알게된 내용이고 제가 하고싶은거는 아래와 같습니다. 1. 회원가입시 주민등록번호를 입력받음 2. aes를 통해 암호화시킴 3. "관리자"만 암호화 키를 가지고 실제 데이터를 찾아냄 이와 같은 경우일때 관리자의 권한만 강탈당하지 않으면 MITM 공격 자체가 불가능 하기때문에 고객의 정보를 안전하게 보유할 수 있는지 궁금합니다. * 개인정보동의 받습니다. * 3.3% 원천징수를 위해서 주민등록번호가 필요합니다.