Inflearn brand logo image

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드

Ch5-1. (25-06-05 추가강의) 관리자 페이지 IP 블랙리스트 기능 구현

ch5-1 관리자 페이지 IP블랙리스트 기능구현 관련

해결된 질문

작성

·

23

0

안녕하세요..

아래와 같이 에러가뜨는데요;;

 

code: 'MODULE_NOT_FOUND',

requireStack: [

'/Users/sungwon/Desktop/Project/Web/company_website/backend/index.js'

]

}

Node.js v24.4.0

[nodemon] app crashed - waiting for file changes before starting...

image.png

.

backend > index.js코드 입니다.

require("dotenv").config();
const express = require("express");
const mongoose = require("mongoose");
const cookieParser = require("cookie-parser");
const cors = require("cors");

const app = express();
const PORT = 3000;
const userRoutes = require("./routes/user");

app.use(express.json())
app.use(express.urlencoded())
app.use(cookieParser());

app.use(cors({
  origin: "*",
  credentials: true,
}));

app.use("/api/auth", userRoutes);

app.get("/", (req, res) => {
  res.send("Hello world");
});


app.get("/api/check-ip", (req, res) => {
  const clientIP = req.ip || req.connection.remoteAddress;
  const blacklistedIPs = JSON.parse(process.env.IP_BLACKLIST || '[]');

  console.log("Client IP:", clientIP);
  console.log("Blacklisted IPs:", blacklistedIPs);
  
  if (blacklistedIPs.includes(clientIP)) {
    return res.status(403).json({ allowed: false, message: "Access denied - IP is blacklisted" });
  }
  
  res.json({ allowed: true });
});

mongoose
  .connect(process.env.MONGO_URI)
  .then(() => console.log("MongoDB와 연결이 되었습니다."))
  .catch((error) => console.log("MongoDB와 연결에 실패했습니다: ", error));

app.listen(PORT, () => {
  console.log("Server is running");
});

답변 2

0

닭강정님의 프로필 이미지
닭강정
지식공유자

안녕하세요. 질문 주셔서 감사합니다.

해당 오류는 MODULE_NOT_FOUND로 이전에 문의글과 비슷한 에러입니다. MODULE_NOT_FOUND 오류 - 인프런 | 커뮤니티 질문&답변

구체적으로 어떤 모듈이 없는지 또는 인식하지 못했는지 확인하기 위해서 일단 챕터 5-1 IP블랙리스트 index.js 코드를 살펴보자면

require("dotenv").config();
const express = require("express");
const mongoose = require("mongoose");
const cookieParser = require("cookie-parser");
const cors = require("cors");

const userRoutes = require("./routes/user");

다음 패키지들이 사용됩니다:

  • dotenv

  • express

  • mongoose

  • cookie-parser

  • cors
    또한, ./routes/user 경로에서 라우트 파일을 불러오고 있습니다.

챕터 4-4와 비교해서 새로 추가된 패키지는 cors 패키지입니다. 해당 패키지가 실제로 설치되어 있는지 package.json 및 node_modules 폴더에서 확인 부탁드립니다.

그 후, 다음 사항을 확인해 주세요:

  1. 패키지 설치 여부 확인
    backend 디렉토리에서 아래 명령어를 실행하여 필요한 패키지를 설치해 주세요

    npm install dotenv express mongoose cookie-parser cors
  2. 라우트 경로 확인
    routes 폴더가 backend 디렉토리 내부에 위치해 있고,
    그 안에 user.js 파일이 존재하는지 확인해 주세요.

  3. 경로 작성 확인
    require("./routes/user")가 정확한 상대 경로인지 확인해 주세요.
    파일 위치가 다를 경우, 경로를 조정해야 할 수 있습니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. jasan88님께서 모듈을 찾을 수 없다는 MODULE_NOT_FOUND 에러에 관한 문제를 겪고 계시군요. 이는 보통 모듈을 설치하지 않았거나, 모듈의 경로가 잘못되었을 때 발생하는 오류입니다. 다음은 문제를 해결하기 위한 몇 가지 방법입니다.

1. 모듈 설치 여부 확인

먼저, 사용하는 모듈들이 모두 설치되어 있는지 확인해 주세요. 다음과 같은 명령어로 필요한 모듈을 설치할 수 있습니다:

cd backend
npm install express mongoose dotenv cookie-parser cors

이 명령을 실행하면 package.jsondependencies 섹션에 해당 모듈들이 포함되어 있는지 확인할 수 있습니다.

2. 모듈 경로 확인

require 함수 내에 명시된 모듈의 경로가 정확한지 확인합니다. 예를 들어, ./routes/user 의 경로가 올바른지 확인해야 합니다. routes 폴더가 프로젝트 디렉토리 안에 제대로 위치해 있는지, user.js 파일이 그 안에 존재하는지 확인하세요.

3. 환경 변수 확인

코드에서 process.env.MONGO_URIprocess.env.IP_BLACKLIST 를 사용하고 계십니다. 따라서 .env 파일에 환경 변수가 제대로 설정되어 있는지 확인해 주세요. 환경 변수가 누락되면 서버가 올바르게 시작되지 않을 수 있습니다.

4. 추가적인 정보

MODULE_NOT_FOUND 에러가 반복된다면, 에러 메시지에 나타난 경로나 모듈 이름에서 오타가 없는지 다시 한번 확인해보세요. 또한, 다른 비슷한 이슈를 해결한 사례가 있으니 한 번 참고해 보시면 좋습니다:

위의 해결법이 도움이 되길 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기