728x90
방법
1. 서버를 2개 준비해서 각각 다른 포트로 listen한다.
2. 서버에 연결되는 app.js도 다른 이름으로 2개 준비한다.
3. express.static으로 연결되는 public 폴더도 다른 이름으로 2개 준비한다.
4. 이때, 안에 들어가는 index.html에 구분할 수 있는 문자를 넣어 준다. ex) 1번 HTML, 2번 HTML
5. 1회의 npm run dev를 통하여 localhost:3000과 localhost:8080에 접속한다.
6. 출력 결과가 구분되는지 확인한다.
서버 코드
import Http from 'http';
import { ExpressApp } from './app.js';
import { ExpressApp2 } from './app2.js';
import sequelize from './db/sequelize.js';
import Env from './env.js';
import socket from './socket.js';
import { Rooms } from './db/index.js';
export class Server {
env = new Env();
expressApp = new ExpressApp();
httpServer;
constructor() {
this.httpServer = new Http.Server(this.expressApp.app);
}
databaseConnection = () => {
return this.sequelizeAuthenticate().then(this.sequelizeSync);
};
sequelizeAuthenticate = () => {
// test connection
return sequelize.authenticate();
};
sequelizeSync = () => {
if (process.env.NODE_ENV === 'development')
return sequelize.sync({ force: false });
};
runServer = async () => {
try {
await this.databaseConnection();
return await socket(this.serverListen());
} catch (e) {
return this.serverErrorHandler(e);
}
};
serverListen = () => {
return this.httpServer.listen(this.env.port, () => {
console.log(
`Server is running on: http://${this.env.host}:${this.env.port}`,
);
});
};
serverErrorHandler = error => {
console.log('Server run error: ', error.message);
};
}
const server = new Server();
server.runServer();
class Server2 {
env = new Env();
expressApp = new ExpressApp2();
httpServer;
constructor() {
this.httpServer = new Http.Server(this.expressApp.app);
}
databaseConnection = () => {
return this.sequelizeAuthenticate().then(this.sequelizeSync);
};
sequelizeAuthenticate = () => {
// test connection
return sequelize.authenticate();
};
sequelizeSync = () => {
if (process.env.NODE_ENV === 'development')
return sequelize.sync({ force: false });
};
runServer = async () => {
try {
await this.databaseConnection();
return await socket(this.serverListen());
} catch (e) {
return this.serverErrorHandler(e);
}
};
serverListen = () => {
return this.httpServer.listen(8080, () => {
console.log(`Server is running on: http://${this.env.host}:8080`);
});
};
serverErrorHandler = error => {
console.log('Server run error: ', error.message);
};
}
const server2 = new Server2();
server2.runServer();
결과
'내일 배움 캠프 > 그땐 (응답하라 추억시대)' 카테고리의 다른 글
망형 토폴로지에 대한 고찰 (0) | 2023.08.20 |
---|---|
마이크로 서비스 아키텍처에서 서비스와 서비스 사이의 정보교환 (0) | 2023.08.19 |
Node.js TCP서버에서 query와 params를 이용하여 CRUD 하기 (0) | 2023.08.19 |
마이크로 서비스 아키텍처 (0) | 2023.08.17 |
응답하라 추억시대 S.A. 작성 (0) | 2023.08.17 |