닉넴이용
331
2021-06-29 14:20:42
2
87

node 경로 인식 못하는 거 봐주실 수 있나요?


app.use(express.static(__dirname+'/public'));
static 경로를 설정해놓으면 밑에 처럼 사용해도 된다고 했는데
const db=require('/javascripts/database.js');
이렇게 하면 파일을 찾지 못하고
const db=require('./public/javascripts/database.js');

전체 경로를 써줘야 인식을 합니다. static 경로 설정하는 데에 문제가 있는 걸까요?

0
  • 답변 2

  • RWB
    1k
    2021-06-29 14:27:34 작성 2021-06-29 14:29:16 수정됨
    app.use(express.static(__dirname+'/public'));


    이건 URL에서 public이라고 하는 폴더를 static 경로로 인식해준다는 의미입니다.


    Host가 www.site.com이고, public 폴더 내에 profile.png가 있다고 가정하면,

    원래는 www.site.com/public/profile.png 와 같이 접근해야하지만, static 경로로 할당했으므로

    www.site.com/profile.png 로 접근할 수 있죠.


    위의 내용은 대충 아시리라 생각합니다.

    중요한건, 위 경로는 URL 형태에만 적용된다는 거죠.


    const db=require('./public/javascripts/database.js');


    그런데 위 소스는 웹이 아닌 Node.js, 즉 파일 시스템의 영역입니다.

    경로 앞에 "."이 있으므로, 현재 경로/public/javascript/database.js를 바라봅니다.


    파일 시스템 영역이므로, 위에서 적용한 app.use는 여기와 관계 없습니다.


    설정이 잘못됐다거나 한 건 아니고, 지극히 정상입니다.

  • 닉넴이용
    331
    2021-06-29 14:31:42
    아 감사합니다...! routes 폴더로 이동시켰습니다...ㅎㅎ
  • 로그인을 하시면 답변을 등록할 수 있습니다.