jichoi / calendar star
최정임 최정임 01-23
250123 최정임
@beaadbfc0f003f106f7a79383e07a2b65ae07892
client/views/pages/AppRouter.js
--- client/views/pages/AppRouter.js
+++ client/views/pages/AppRouter.js
@@ -21,14 +21,14 @@
     /* 메인화면 */
     { path: '/', name: '/', component: Main},
     { path: '/main2.page', name: '/main2', component: Main2},
-    { path: '/ChuljangList.page', name: 'ChuljangList', component: ChuljangList },
-    { path: '/HyugaList.page', name: 'HyugaList', component: HyugaList },
-    { path: '/HyugaInsert.page', name: 'HyugaInsert', component: HyugaInsert },
-    { path: '/ProjectList.page', name: 'ProjectList', component: ProjectList },
-    { path: '/DeptList.page', name: 'DeptList', component: DeptList },
-    { path: '/EmployeeList.page', name: 'EmployeeList', component: EmployeeList },
-    { path: '/NoticeList.page', name: 'NoticeList', component: NoticeList },
-    { path: '/PubHoliyday.page', name: 'PubHoliyday', component: PubHoliyday },
+    { path: '/ChuljangList', name: 'ChuljangList', component: ChuljangList },
+    { path: '/HyugaList', name: 'HyugaList', component: HyugaList },
+    { path: '/HyugaInsert', name: 'HyugaInsert', component: HyugaInsert },
+    { path: '/ProjectList', name: 'ProjectList', component: ProjectList },
+    { path: '/DeptList', name: 'DeptList', component: DeptList },
+    { path: '/EmployeeList', name: 'EmployeeList', component: EmployeeList },
+    { path: '/NoticeList', name: 'NoticeList', component: NoticeList },
+    { path: '/PubHoliyday', name: 'PubHoliyday', component: PubHoliyday },
 ];
 
 const AppRouter = createRouter({
server/modules/web/Server.js
--- server/modules/web/Server.js
+++ server/modules/web/Server.js
@@ -9,6 +9,9 @@
 const express = require('express');
 const webServer = express();
 
+const FS = require("fs");
+const Transform = require("stream").Transform;
+
 
 /**
  * @author : 최정우
@@ -51,9 +54,29 @@
  * @since : 2022.09.20
  * @dscription : 화면요청 URL 처리
  */
-webServer.get('*.page', function (request, response, next) {
-    //기능구현예정
-})
+webServer.get('/:pageName', function (request, response, next) {
+    const pageName = request.params.pageName; // 'ChuljangList' 등의 동적 페이지 이름 추출
+    
+    // index.html을 스트리밍하여 페이지에 맞는 URL을 동적으로 설정
+    const StreamTransform = new Transform();
+    StreamTransform._transform = function (data, encoding, done) {
+        let fileContent = data.toString();
+        
+        // 특정 페이지에 맞는 URL을 변경하는 부분
+        let replaceBeforeContent = `<script id="app-start-vue-page">const APP_USER_HTTP_REQUEST_URL = '/';</script>`;
+        let replaceAfterContent = `<script id="app-start-vue-page">const APP_USER_HTTP_REQUEST_URL = '/${pageName}';</script>`;
+        
+        // 파일 내용에서 URL을 변경
+        fileContent = fileContent.replace(replaceBeforeContent, replaceAfterContent);
+        this.push(fileContent);
+        done();
+    };
+    
+    // index.html 파일을 스트리밍하여 반환
+    FS.createReadStream(`${BASE_DIR}/client/views/index.html`)
+        .pipe(StreamTransform)
+        .pipe(response);
+});
 
 /**
  * @author : 최정우
Add a comment
List