node.js 를 사용하면서 Express라는 웹 프레임워크를 사용 할려고한다. 인텔리제이에서 제공하는 설명 덕분에 코드는 조금 더러워 보이지만 파리미터에 대한 자세한 내용을 잘 보여줘서 새로운 언어를 시작하는데 앞서 도움이된다!
Node.js 기반의 웹 애플리케이션 프레임워크, node.js 에서 http 서버를 직접 만들 수 있지만 코드가 길어지고 불편함 때문에 많은 곳에서 채택함
const http = require('http');
const url = require('url');
const server = http.createServer((req, res) => {
const parsedUrl = url.parse(req.url, true);
if (req.method === 'GET' && parsedUrl.pathname === '/users') {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ message: "User list" }));
} else if (req.method === 'POST' && parsedUrl.pathname === '/users') {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ message: "User created" }));
} else {
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end("Not Found");
}
});
server.listen(3000, () => {
console.log("Server running at http://localhost:3000");
});
const express = require('express');
const app = express();
app.use(express.json()); // JSON 파싱 미들웨어
// GET /users
app.get('/users', (req, res) => {
res.json({ message: "User list" });
});
// POST /users
app.post('/users', (req, res) => {
res.json({ message: "User created" });
});
// 404 처리
app.use((req, res) => {
res.status(404).send("Not Found");
});
app.listen(3000, () => {
console.log("Express server running at http://localhost:3000");
});
// wiki.js - Wiki route module.
const express = require("express");
// express import
const router = express.Router();
// express 참조해서 Router 가져옴
// Home page route.
router.get("/", (req, res) => {
res.send("Wiki home page");
});
// 리소스 "/" 접근해서 req = request, res = response
// 응답을 보낸다 "wiki home page"
// About page route.
router.get("/about", (req, res) => {
res.send("About this wiki");
});
module.exports = router;
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
쓰는것은 비슷해보이는데 render 와 send 는 무슨 차이일까 ?
메서드 | 설명 | Spring 개념 | 예시 |
---|---|---|---|
res.send() | 데이터 자체를 응답 (문자열, JSON, HTML 조각) | @RestController + ResponseEntity | res.send({id:1}) |
res.render() | 템플릿(Views)을 HTML로 변환해서 응답 | @Controller + JSP/Thymeleaf | res.render("index", {user:"yohan"}) |
그래서 view가 있는 인텔리제이에서 render를 사용했구나!
글 읽어주셔서 감사합니다! : )