v8 자바스크립트 엔진으로 빌드된 이벤트 기반 자바스크립트 런타임
코드를 기능 혹은 규모에 따라 분할하는 것을 의미
const helloWorld = function () {
console.log("Hello World!");
};
module.exports = helloWorld;
내보내기 코드를 추가 !
module.exports : 내보낸다
한 파일에서 2가지를 내보내기 하고 싶다면?
const sayGoodbye = function () {
console.log("Good Bye!");
};
const sayNice = function () {
console.log("nice !");
};
module.exports = { sayGoodbye, sayNice };
const helloWorld = require("./mod1");
helloWorld(); //Hello World! 출력됨
const { sayGoodbye, sayNice } = require("./mod2");
sayGoodbye();
sayNice();
노드 기반의 자바스크립트 프로그램을 등록할 수 있는 공개 커뮤니티
npm init -y ? (= 빠르게 생성하겠다)
//http가져와서 http상수에 담기
//http모듈은 node의 기본모듈이라서 제공됨
const http = require("http");
//morgan가져와서 morgan상수에 담기
const morgan = require("morgan");
//combined방식의 모건을 logger에 저장
const logger = morgan("combined");
//서버주소를 hostname에 담기: 로컬호스트(나 자신)
const hostname = "127.0.0.1";
//포트번호를 port에 담기: 데이터가 송수신 되어지는 통로
const port = 3000;
//http가 제공하는 createServer 사용
//2개의 인수를 전달 req: 요청(수신), res: 응답(송신)
//createServer 가 전달받음
const server = http.createServer(function (req, res) {
logger(req, res, function (err) {
if (err) return console.log(err);
res.statusCode = 200;
//상태코드 200번에
res.setHeader("content-type", "text/plain");
res.end("hello, Gayoung!");
//이거를 화면에 쏴준다, 보낸다는 의미
});
});
//listen: 서버가 구동 중인 상태에서
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
const http = require("http");
//fs 모듈이 추가 file system 파일을 제공하고 싶을 때 사용 !
const fs = require("fs");
var morgan = require("morgan");
var logger = morgan("combined");
const hostname = "127.0.0.1";
const port = 3000;
const server = http.createServer(function (req, res) {
logger(req, res, function (err) {
//오류가 발생하면 실행
if (err) return console.log(err);
//오류가 없으면 실행
//html파일을 제공해주겠다 !
//파일을 읽고
//2번째 매개변수(data)는 clock.html 파일임
fs.readFile("./public/clock.html", function (err, data) {
res.statusCode = 200;
res.writeHead(200, { "Content-Type": "text/html" });
res.end(data); //data로 담긴 clock.html을 화면에 뿌려주겠다.
});
});
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
<body>
<div class="clock">
<div id="today" class="today"></div>
<div id="time" class="time"></div>
<div id="time-line" class="time-line">
<span>hours</span>
<span>minutes</span>
<span>seconds</span>
</div>
</div>
</body>
<script>
const todayDiv = document.getElementById("today");
const timeDiv = document.getElementById("time");
const modifyNum = (number) => {
return parseInt(number) < 10 ? "0" + number : number;
};
const getNowDate = () => {
const nowDate = new Date();
const week = [
"일요일",
"월요일",
"화요일",
"수요일",
"목요일",
"금요일",
"토요일",
];
let year = nowDate.getFullYear();
let month = modifyNum(nowDate.getMonth() + 1);
let date = modifyNum(nowDate.getDate());
let day = nowDate.getDay();
setNowDate(year, month, date, week[day]);
};
const setNowDate = (year, month, date, day) => {
todayDiv.textContent = `${year}년 ${month}월 ${date}일 ${day}`;
};
const getNowTime = () => {
const nowDate = new Date();
let hours = modifyNum(nowDate.getHours());
let minutes = modifyNum(nowDate.getMinutes());
let seconds = modifyNum(nowDate.getSeconds());
setNowTime(hours, minutes, seconds);
};
const setNowTime = (hours, minutes, seconds) => {
timeDiv.textContent = `${hours} : ${minutes} : ${seconds}`;
};
getNowDate();
getNowTime();
//시간이 1초마다 실행되는 함수
setInterval(getNowTime, 1000);
</script>
글 재미있게 봤습니다.