728x90
안녕하세요 이번시간에는 nodejs를 사용해서 간단하게 계산기를 만들어보겠습니다.
Node.js를 활용하면 JavaScript 언어로 서버 측 애플리케이션을 개발할 수 있어, 웹 브라우저에서 동작하는 계산기를 만들 수 있습니다.
포스팅에서는 Node.js와 함께 Express 프레임워크를 사용하여 계산기를 만들 예정입니다.
Express는 Node.js를 위한 빠르고 간결한 웹 애플리케이션 프레임워크로, 간단한 설정만으로도 웹 서버를 구축할 수 있습니다.
계산기 예제는 사용자로부터 입력을 받아 사칙연산을 수행하고 결과를 반환하는 기능을 갖춘 웹 페이지로 구성됩니다.
전체 코드는 다음과 같습니다.
index.html
<!DOCTYPE html>
<html>
<head>
<title>계산기</title>
</head>
<body>
<h1>간단한 계산기</h1>
<form action="/calculate" method="post">
<input type="number" name="num1" placeholder="숫자 1" required />
<select name="operator" required>
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="number" name="num2" placeholder="숫자 2" required />
<button type="submit">계산</button>
</form>
<div id="result"></div>
</body>
</html>
index.js
// 필요한 모듈 가져오기
const express = require('express');
// Express 애플리케이션 생성
const app = express();
const port = 3000;
// POST 요청 처리를 위한 미들웨어 설정
app.use(express.urlencoded({ extended: true }));
// 계산기 페이지 라우팅
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});
// 계산 요청 처리
app.post('/calculate', (req, res) => {
const num1 = parseFloat(req.body.num1);
const num2 = parseFloat(req.body.num2);
const operator = req.body.operator;
// 결과 계산
const result = calculate(num1, num2, operator);
// 결과 반환
res.send(`결과: ${result}`);
});
// 서버 시작
app.listen(port, () => {
console.log(`서버가 http://localhost:${port} 에서 실행 중입니다.`);
});
// 계산 함수
function calculate(num1, num2, operator) {
switch (operator) {
case '+':
return num1 + num2;
case '-':
return num1 - num2;
case '*':
return num1 * num2;
case '/':
return num1 / num2;
default:
return "유효하지 않은 연산자입니다.";
}
}
'Nodejs' 카테고리의 다른 글
[Nodejs]Node.js에서 i18n을 사용하여 다국어 지원 하기 (0) | 2023.09.14 |
---|---|
[Node.js]currency-converter-lt를 사용한 통화 변환 (0) | 2023.09.02 |
[Nodejs] express js에서 AWS S3스토리지에 저장된 파일 삭제하기 (0) | 2023.08.26 |
[Nodejs] express js에서 AWS S3스토리지에 저장된 파일 존재하는지 확인하기 (0) | 2023.07.27 |
[node.js]URL path 방식으로 파라미터를 전달하는 라우팅 기법 (0) | 2023.06.27 |