Post 방식 예제임
1. routing을 하는 member.js 정의
- loginb 호출시 DB에서 사용자 정보 존재 여부 조회 후 메시지를 json으로 return함
var MemberProvider = require('./db/db-member.js').MemberProvider;
var memberProvider = new MemberProvider();
// 로그인 실행
router.post('/loginb', function(req, res, next) {
var vId = req.body.email;
var vPwd = req.body.user_password;
var datas = [vId, req.body.mem_type];
// DB에서 사용자 정보 조회
memberProvider.selectSingleQueryByID("selectInfo", datas, function(err, memberInfo) {
var vMsg = "";
if (memberInfo == null) {
vMsg = "일치하는 ID가 없습니다. ";
} else if (memberInfo.password != vPwd) {
vMsg = "비밀번호가 틀립니다.";
}
// 로그인 성공
if (vMsg == "") {
res.render('./home', {
title: 'Main',
logintype: CONSTS.MEMBER_TYPE.PERSONAL,
item: memberInfo,
message: "환영합니다."});
} else { // 로그인 실패
res.render('./member/login', {
title: 'login failed',
logintype: CONSTS.MEMBER_TYPE.PERSONAL,
message: vMsg});
}
});
});
|
2. login view용 jade 파일
- view 구성을 담당
- 두가지 방식(1. $.ajax, 2. $.post)로 Ajax 호출을 수행할 수 있음
- $.ajax는 요청 오류에 대해서도 대응이 가능함
extends ../layout-intro
block scripts
script(type="text/javascript").
$(document).ready(function() {
$("#login").click(function() {
if ($("#email").val() == "") {
alert('이메일(아이디)를 입력하세요.');
$("#email").focus();
return false;
}
if ($("#password").val() == "") {
alert('비밀번호를 입력하세요.');
$("#password").focus();
return false;
}
// 1. $.ajax이용
$.ajax({
url: "/member/login#{logintype}",
dataType: "json",
type: "POST",
data:$('#login_account').serialize(),
success: function(data) {
alert('callback : ' + data.message);
},
error: function() {
alert('error');
}
})
// 2. $.ajax의 약식인 $.post 이용
//- $.post("/member/login#{logintype}", {email:'a', pasword:'b'}, function(data) {
//- alert(data.message);
//- });
});
});
block content
section.login-sect
div.heading
div.branding
h1= title
div.login-body
div.row-item
form#login_account.login-form(action="/member/login#{logintype}" method="post")
input(type="hidden", name="mem_type", value="#{logintype}")
ol
li.row-item
label(for="email-addres") 이메일
div.input-wrapper
input#email.TextInput.TextInput_Large(type="email", name="email" placeholder="이메일 주소" value="#{userid}")
li.row-item
label(for="password") 비밀번호
div.input-wrapper
input#password.TextInput.TextInput_Large(type="password", name="password" placeholder="비밀번호")
li
input#login.Btn.Btn_emph.Btn_super(name="login", type="button" value="로그인")
div.row-item
p.already 아직 계정이 없으신가요?
a.change-form(href="/member/register#{logintype}") 회원가입
|
3. layout-intro.jade
- view용 사용되는 template jade 파일
doctype html
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
script(src="/javascripts/jquery-1.11.2.min.js")
block scripts
body
block content
footer
nav.footer-nav
div.row
|
이 글은 Evernote에서 작성되었습니다. Evernote는 하나의 업무 공간입니다. Evernote를 다운로드하세요. |
댓글 없음:
댓글 쓰기