반응형
노드js에서 express를 가지고 웹서버를 만들 때 서브 도메인을 연결하는 간단한 예제입니다.
const express = require("express");
const vhost = require("vhost");
const sub = express();
const app = express();
//개발중이면 후자 배포면 전자로 사이트 설정
const domain =
process.NODE_ENV === "production" ? "example.com" : "test.local";
app.use(vhost(`sub.${domain}`, sub));
app.get("/", (req, res) => {
res.send("hello world");
});
sub.get("/", (req,res)=>{
res.send("It's sub!");
});
const PORT = 3000;
app.listen(PORT, () => console.log(`server is running at 127.0.0.1:${PORT}`));
서브 도메인으로 접속시 응답해줄 sub와 기본 도메인으로 접속했을 때 응답할 main을 정의해주었습니다.
배포했을 때와 개발중일 때의 사이트를 달리 해주기 위해서
const domain =
process.NODE_ENV === "production" ? "example.com" : "test.local";
domain 변수를 만들어준 모습입니다. CMD에서 아래 명령어를 입력해서 설정해주었습니다.
set NODE_ENV=development
test.local의 경우 127.0.0.1로 연결되도록 hosts 파일을 바꾸어 준건데요,
Windows - system32 - drivers - etc - hosts파일을 메모장으로 열어주어 수정하였습니다.
(관리자권한이 필요하여 메모장을 관리자 권한으로 열고, 파일열기를 통해 수정하였습니다)
위 코드를 기준으로
test.local:3000 일 때와
sub.test.local:3000 일 때 화면에 다른 응답이 오는 것을 확인할 수 있습니다.
아래 사이트를 참고하여 작성한 글입니다~
https://forum.codeselfstudy.com/t/tutorial-how-to-use-subdomains-in-express-js-with-vhost/2290
반응형