<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<form method="post">
<table>
<tr>
<td><label>Id</label></td>
<td><input type="text" name="userId" /></td>
</tr>
<tr>
<td><label>Password</label></td>
<td><input type="text" name="userPw" /></td>
</tr>
</table>
<input type="submit" />
</form>
</body>
</html>
body-parser
npm install body-parser
var express = require("express");
var cookieParser = require("cookie-parser");
var bodyParser = require("body-parser");
var fs = require("fs");
var app = express();
app.use(cookieParser());
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));
// parse application/json
app.use(bodyParser.json());
app.get("/", function (req, res) {
if (req.cookies.auth) {
res.send("<h1>Login Success</h1>");
} else {
res.redirect("/login");
}
});
app.get("/login", function (req, res) {
fs.readFile("login.html", function (error, data) {
res.send(data.toString());
});
});
app.post("/login", function (req, res) {
const { userId, userPw } = req.body;
if (userId == "dikang" && userPw === "1016") {
res.cookie("auth", true);
res.redirect("/");
} else {
res.redirect("/login");
}
});
app.listen(3030);
form을 통해 쿠키를 전달할 때는 bodyParser.urlencoded({ extended: false }) 를 사용한다.
userId와 userPw 값이 일치하면 "auth": true를 cookie로 보내고 Login Success를 화면에 출력한다.
'javascript > Node.js' 카테고리의 다른 글
Node.js 버전 변경하기 (0) | 2020.10.22 |
---|---|
[Express 모듈] Express 앱에서 사용할 미들웨어 작성 (0) | 2020.08.14 |
Node.js HTTP 모듈 (3: 데이터 추출과 쿠키 추출) (0) | 2020.08.13 |
Node.js HTTP 모듈 (2: url.parse) (0) | 2020.08.13 |
Node.js 재시작 없이 반영, 자동 재시작 (Supervisor) (0) | 2020.08.12 |
댓글