언어/js

VS 2022 에서 js 개발 - (2)

조규현15 2023. 4. 25. 01:05
반응형

(1) 에서 console empty project 로 진행하여, node.js 실행 결과만 확인할 수 있었다.

 

이번에는 web project 를 생성하여 진행한다.

프로젝트 구성은 위와 같다. npm 설치가 가능하고 "server.js" 파일이 기본으로 생성된다.

server.js 이름으로 알 수 있듯이 server 를 구성하고 web browser 에서 js 수행을 기반으로 동작한다.

server.js 구성은 아래와 같다.

'use strict';
var http = require('http');
var port = process.env.PORT || 1337;

var fs = require('fs');

http.createServer(function (request, response) {

http 서버를 생성하고 response 를 통해 http 프로토콜을 보내는 구조다.

 

이 구조에서는 간단한 REST API 구성이나 html 형식의 string data 를 보내서 web page 를 보여줄 수 있지만
의도한 바 three.js 를 수행하기 위해서는 server side rendering 이 필요하다.

 

우선, Page 폴더를 생성하여 "index.html" 파일을 추가하고 Createserver callback 내부에 간단한 router 를 구성해준다.

http.createServer(function (request, response) {
    var fname;
    var contentType;

    if (request.method === "GET") {
        switch (request.url) {
            case "":
            case "/":
                fname = __dirname + "/page/index.html";
                contentType = "text/html";
                break;
            case "/main.js":
                fname = __dirname + "/page/main.js";
                contentType = "text/javascript";
                break;
            default:
                break;
        }

        if (fname) {
            fs.readFile(fname, function (err, data) {
                if (err) {
                    response.writeHead(404);
                    response.end();
                } else {
                    response.writeHead(200, { 'Content-Type': contentType })
                    response.write(data);
                    response.end();
                }
            });
        } else {
            response.writeHead(404);
            response.end();
        }
    }
}).listen(port);

요즘은 npm 모듈이 잘 나와있고 express 를 사용하면 routing 도 자동으로 해주기 때문에 이런 코드를 작성할 일은 없다.

"main.js" 는 "index.html" 에서 script 로 작성된 ( local file ) 파일이며 서버에서 js 를 보내줘야 하기 때문에 요청이 온다면

"text/javascript" 형식으로 파일을 보내주면 된다.

 

그리고 three.js 는 import map 를 제공하고 있어 html 내 추가하면 web 버전 script 를 바로 사용할 수 있다.

마지막으로 "main.js" 파일에는 example 을 작성하면 아래 결과를 확인할 수 있다.

 

반응형

'언어 > js' 카테고리의 다른 글

VS 2022 에서 js 개발 - (1)  (0) 2023.04.23
ECMAScript 6 Tutorial  (0) 2016.02.26
commonjs & require  (0) 2016.02.23
closure & promise  (0) 2016.02.23
closure  (0) 2016.02.23