-
Node.js 연동 ajax 기본WEB 2022. 9. 29. 11:56
폴더수준으로 관리하기 위해서는 로컬프로젝트로 생성해야 함
1. 폴더생성
2. npm init
3. npm install --save express
단순 로그인과 route등을 포함한 기본형은 아래와 같다.
-server.js
단순 로그인부분을 포함한 ajax 연동 기본형
var fs = require('fs');
var express = require('express');
var cookieParser = require('cookie-parser');
var app = express();
var http = require('http').Server(app);
var bodyParser = require('body-parser'); // 책과는 다르게 body-parser 모듈이 express와는 따로 설치해줘야함. cmd에서 "npm installs body-parser" <br/>
// body-parser은 POST요청 데이터를 추출하는 미들웨어임. 이걸 사용하면 request객체에 body 속성이 부여됨.
// 미들웨어를 설정합니다.
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true })); // extended:true를 해줘야 한다 .왜냐하면 url인코딩이 계속 적용될지 1번만 적용할지 묻는 것이기 때문
app.use(cookieParser());
app.use(express.static(__dirname));
// 라우터를 설정합니다.
app.get('/', function(request, response){
if ( request.cookies.auth){
//response.send('<h1>Login Success</h1>');
response.sendfile('starter.html');
} else {
response.redirect('/login');
}
});
app.get('/login', function(request, response){
response.sendfile('login.html');
});
app.get('/logs', function(request, response){
if ( request.cookies.auth){
//response.send('<h1>Login Success</h1>');
response.sendfile('logs.html');
} else {
response.redirect('/login');
}
});
app.post('/login', function(request, response){
// 쿠키를 생성합니다.
var login = request.body.login; // 변수를 받을때 post 방식은 request 안에 body 객체에서 받아온다.
var password = request.body.password; // var login = request.param("login")으로 받아오는 것도 가능 이건 get 방식
// 출력합니다.
console.log(login, password);
console.log(request.body);
// 로그인을 확인합니다.
if(login == 'admin' && password == '1234'){
// 로그인 성공
response.cookie('auth', true);
response.redirect('/');
} else {
// 로그인 실패
response.redirect('/login');
}
});
app.get("/test", function(request, response) {
response.sendfile('test.html');
});
app.post('/ajax_test', function(request, response){
console.log(request.body);
/*var pr1 = request.param('param1');
var pr2 = request.param('param2');
response.send({
param1: pr1,
param2: pr2,
result: "data end!"
});*/
response.send(request.body);
});
app.post('/logout', function(request, response){
response.clearCookie('auth');
response.redirect('/');
});
app.get("*", function(request, response) {
response.sendfile('404.html');
});
http.listen(1337);
console.log('Server running at http://127.0.0.1:1337/');
http.listen('3000', function() {
console.log("server on!");
})
-test.html
단순 ajax 연동 기본형
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<script src="plugins/jQuery/jquery-2.2.3.min.js"></script>
<script>
$(document).ready(function(){
$('#calcBtn').click(function() {
$.ajax({
url : 'http://127.0.0.1:1337/ajax_test',
method : 'POST',
dataType : 'json',
data : {param1 : '입력값1', param2 : '입력값2'},
success : function(response) {
$('#div1').html(response.result);
$('#div2').html(response.param1);
$('#div3').html(response.param2);
}
})
})
});
</script>
</head>
<body>
<button id='calcBtn'>test</button>
<div id='div1'></div>
<div id='div2'></div>
<div id='div3'></div>
</body>
</html>
'WEB' 카테고리의 다른 글
InfluxDB 1.8.1 윈도우에서 node.js 사용 (0) 2023.07.17 InfluxDB 1.8.1 윈도우 설치 (0) 2023.07.17 pm2 명령어를 찾을 수 없습니다. (0) 2022.09.27 mariadb 최초 설정 (1) 2022.09.26 공공데이터포털을 통한 날씨 받기 (0) 2021.07.05