Invalid src prop ( https://loremflickr.com/640/480?lock=5661426936971264 ) on `next/image`, hostname " loremflickr.com " is not configured under images in your `next.config.js` faker를 통해 https://loremflickr.com 에서 외부 이미지를 가져올 때 위 오류 발생하시는 분들은 next.config.js 또는 next.config.mjs에 아래와 같이 추가해주시면 됩니다. /** @type {import('next').NextConfig} */ const nextConfig = { images: { remotePatterns: [ { protocol: "https", hostname: "loremflickr.com", port: "", pathname: "/640/480/**", }, ], }, }; export default nextConfig;
안녕하세요. 현재 react 로 구성되어 있는 프로젝트를 next.js 로 마이그레이션 하기 위해 강의 신청해서 들었습니다. 마이그레이션 도중 질문이 있어서 글 남겨봅니다. 1) 기존 react 에서 navigate 의 state 값으로 전달하던 데이터 들이 있습니다. 전달된 데이터는 location state 로 가져와서 사용했구요. 2) next 12 버전 까지는 query 에 객체를 담아서 보낼수 있고 url 도 as 를 이용해서 제어할 수 있는걸 확인했습니다. 3) 하지만 13버전 이후부터 next/router -> next/navigate 로 변경되면서 query 객체, as 가 삭제되어진 걸로 확인되는데 페이지 이동시 데이터를 전달하러면 url 에 그냥 꼬라박는 방법 뿐인지 질문 드립니다.
리액트 설치 npx create-react-app ./ 이후 리액트 최초 시작 시 npm run start가 작동하지 않습니다. 위와 같은 오류가 발생하여, 아래와 같은 해결 방법들을 실행해보았습니다. 하지만, 위의 코드를 모두 실행했음에도 동일한 오류가 계속해서 발생합니다. node.js와 npm의 버전은 이러합니다. 폴더는 현재 강의자료 코드 폴더 내에 study라는 새로운 폴더를 만들어, 그 안에 리액트를 설치했습니다. 프로젝트를 3번 정도 삭제하고 다시 설치했음에도 동일한 오류가 발생합니다. 어떻게 하면 좋을까요? 🥲 VSCode를 재시작하니 서버가 실행되었는데, App.js의 수정사항이 반영되지 않아 다시 VSCode를 재시작했더니 또 동일한 오류가 납니다...
섹션3 recoil을 테스트하는 방법 3:50에 cy.url().should('include','/'); 를 통해서 root page로 잘 이동하는지 확인한다고 하신부분에서, '/' 는 어떤 페이지에서든 include가 되어 테스트가 통과될것 같은데 혹시 rootpage를 검증하기위한 다른 방법은 없을까요?
안녕하세요 선생님. 제가 사용하고 있는 맥의 시스템 테마를 라이트 모드에서 다크모드로 바꾸니까 클론하고 있는 사이트를 열었을 때 글자들이 다 안 보이더라구요. 아마 다크모드임을 인식하고 글자가 하얗게 됐는데 배경은 검정색으로 바뀌지 않아서 그런것 같습니다. 그런데 또 희한하게 트윗을 작성하는 부분(무슨 일이 일어나고 있나요 부분)은 검정색 배경으로 바뀌어 있습니다. 다크 모드에 대응해서 사이트를 보여주기 위해서는 별도의 라이브러리나 CSS 적용을 해야하는 것일까요?
다른 코드를 뜯어보고있는데 거기에는 querykey가 이런식으로 배열 한개로 되어있더라고요 두개일경우는 두번째 키가 변수로 들어갈 경우에만 그렇게 되어있던데 강사님께서는 무조건 두개로 지정한 이유가 있을까싶어서요 두개로 했을때 어떤 효과가 있어서 그렇게 하신건지에 대해 궁금합니다. await queryClient.prefetchQuery({ queryKey: ["listItems"], queryFn: getList, });
안녕하세요. 강의에서 Post 서버컴포넌트에서 PostArticle을 분리하시면서 article 하나 바꾸자고 서버컴포넌트를 클라이언트 컴포넌트로 바꾸기 아깝다고 하시면서 PostArticle 컴포넌트로 따로 분리하셨는데요, 왜 아까운건지 이유를 자세히 알고싶습니다. GPT에도 물어봤는데 이해가 잘 안가서.. 이렇게 질문드립니다ㅠㅠ 자세히 설명해주시면 정말 감사할것같습니다.
자주 질문을 드려 죄송합니다. ㅠㅠ 모르는게 많아서 ㅠㅠ 그 해시태그 부분을 작업 하고 있는데 제가 해시태그를 클릭하게 되면 예를 들러 123123을 클릭을 한다 라고 하면 기존 아래에서 검색이 될시 이런식으로 해시태그가 123123만 나오고 나머지 것들은 안나오는 현상이 나오고 있습니다. 코드 같은 경우는 알려주신데로 router.get("/:hashtag", async (req, res, next) => { try { const users = req.user ? req.user.id : null; const offset = (parseInt(req.query.page) - 1) * 10 || 0 const { count, rows: post } = await Post.findAndCountAll({ offset: offset, limit: 10, // DESC 최신순 ASC 오래된순 order: [ ["createdAt", "DESC"] ], include: [ { model: Hashtag, where: { hashtag: req.params.hashtag }, attributes: ["hashtag"], through: { attributes: [] }, }, { model: Image, attributes: ["src"], },{ model: User, attributes: ["nickName"], }], attributes: [ "id", "title", "createdAt", "view", "content", // 좋아요 수 [Sequelize.literal("(SELECT COUNT(*) FROM `Like` WHERE `Like`.`postId` = `Post`.`id`)"), "count"], // 좋아요 여부 [Sequelize.literal("IF((SELECT `postId` FROM `Like` WHERE `Like`.`postId` = `Post`.`id` AND `Like`.`userId` = " + users + "), 1, 0)"), "like"], ], }) const posts = post.map((post) => { const format = post.toJSON() format.hashtag = format.Hashtags.map((tag)=>tag.hashtag) format.src = format.Images.map((img) => img.src).join("") format.nickname = format.User.nickName format.content = format.content.replace(/<[^>]+>|<img.*?>/g, ""); delete format.Images; delete format.User; delete format.Hashtags; return format; }) res.status(201).json({ count, posts }) } catch (error) { console.error(error) next(error) } }) 이렇게 작성을 하였는데 찾아 보니 where: { hashtag: req.params.hashtag }, 이렇게 작성을 하게 되면 해당 해시태그에 해당하는 게시물이 불러와 지기는 하는데 검색된 해시태그만 뽑아서 나타나지게 되니 where: { hashtag: { [Op.contains]: [`${req.params.hashtag}`] } }, 이런식으로 작성을 하면 된다고 해서 써봣는데 "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''asd' LEFT OUTER JOIN Images AS Images ON Post .`id` = Images .`PostId` LE' at line 1", sql: "SELECT count(`Post`.`id`) AS count FROM Posts AS Post INNER JOIN ( PostHashtag AS Hashtags->PostHashtag INNER JOIN Hashtags AS Hashtags ON Hashtags .`id` = Hashtags->PostHashtag .`HashtagId`) ON Post .`id` = Hashtags->PostHashtag .`PostId` AND Hashtags .`hashtag` <@ 'asd' LEFT OUTER JOIN Images AS Images ON Post .`id` = Images .`PostId` LEFT OUTER JOIN Users AS User ON Post .`UserId` = User .`id`;", 이런 에러가 나더라구요... 왜 images에 관련된 문구가 나오는지는 모르겟지만.... 혹시 mysql에서 contains메소드가 사라진건지 아닌지 혹시 고칠수 잇는건지 궁금합니다. 제 sequelize 버전은 6.35.2 입니다. ㅠㅠ
강의영상 5분대에서 fetch 속에 들어가는 cache등과 같은 옵션등은 https://developer.mozilla.org/ko/docs/Web/API/fetch mdn web doc에서의 fetch 문서를 찾아 문법을 확인하다 이해가 잘 안되는 점이 두개가 있어 문의 드립니다. credentials, headers, cache는 찾았는데 next는 못찾았는데 이 부분은 어느 자료를 보고 사용법을 확인할 수 있는지 모르겠네요. 혹시 next에서 인식하기 위해 태그를 추가하는 것이라면... next: {tags: ['rooms']},에서 rooms 빼고는 고정해서 사용하는 것인가요? headers 부분에서 {Cookie: cookies().toString()} 처럼 key-value 형식을 갖춘 객체로 넣는 것은 필수인가요? 그리고 이것과 별개로 제가 쿠키에 어떤 정보들이 저장되는지 잘 몰라서 cookies().toString()에는 어떤 정보들이 담기는 것인지 궁금합니다.
app-index.js:35 Warning: Extra attributes from the server: class at html at RedirectErrorBoundary ( webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/redirect-boundary.js:73:9 ) at RedirectBoundary ( webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/redirect-boundary.js:81:11 ) at NotFoundErrorBoundary ( webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js:76:9 ) at NotFoundBoundary ( webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js:84:11 ) at DevRootNotFoundBoundary ( webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/dev-root-not-found-boundary.js:33:11 ) at ReactDevOverlay ( webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/react-dev-overlay/internal/ReactDevOverlay.js:84:9 ) at HotReload ( webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/react-dev-overlay/hot-reloader-client.js:307:11 ) at Router ( webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js:182:11 ) at ErrorBoundaryHandler ( webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js:114:9 ) at ErrorBoundary ( webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js:161:11 ) at AppRouter ( webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js:538:13 ) at ServerRoot ( webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/app-index.js:129:11 ) at RSCComponent at Root ( webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/app-index.js:145:11 ) 프레임 1개 더 표시 패키지 생성만 했는데 콘솔에 찍히는 오류가 있던데 그냥 로컬에서 실행해서 뜨는 오류인건가요?
안녕하세요! 강의 잘 듣고 있습니다. module이 붙어있으면 각 페이지에서 쓰는 left, right를 구별해준다고 하셨는데 page.module.css 가 app 폴더 안에 있어서 전부 다 적용이 되고 있는데 만약 login파일에서 left를 쓰고 signup파일에서도 다른 css를 적용하는 left를 쓰고 싶다면 이 둘은 어떻게 구분을 하나요? page.module.css에 left를 두번 작성하나요..?