var express=require('express')
var app=express()
var router=express.Router()
router.get('/', function(req, res){
console.log('logout js');
req.logout();
res.redirect('/login');
});
module.exports=router;
로그아웃이다.
RESTful API
REST한 방식의 API라는 건, 아래처럼 잘 설계된 API를 말한다.
1. 웹을 근간으로 하는 HTTP Protocol 기반이다.
2. 리소스(자원)는 URI 로 표현하며 말 그대로 '고유'해야 한다.
3. URI는 단순하고 직관적인 구조이어야 한다.
4. 리소스의 상태는 HTTP Methods 를 활용해서 구분한다.
5. xml/json을 활용해서 데이터를 전송한다. (주로 json)
API Design
1. 복수명사를 사용(/movies)
2.필요하면 URL에 하위 자원으로 표현 (/movies/23)
3. 필터조건을 허용할 수 있음 (/movies?state=active)
Example
URL | METHODS | 설명 |
/movies | get | 모든 영화리스트 가져오기 |
/movies | post | 영화 추가 |
/movies/:title | get | title 해당 영화 가져오기 |
/movies/:title | delete | title 해당 영화 삭제 |
/movies/:title | put | title 해당 영화 업데이트 |
/movies?min=9 | get | 상영중인 영화리스트 |
create table 테이블이름(
컬럼이름 컬럼값,
상동
)
순
create table movie (id int not null auto_increment primary key ,
title char(20) not null)
insert into 테이블명 values(모든 col);
insert into 테이블명(col 리스트) values(그 col);
delete from 테이블명 조건;
auto_increment 값 초기화
alter table 테이블명 auto_increment=1;
이미 생성한 테이블 컬럼에 자동증가 옵션을 추가해주고 싶을 때에는
alter table 테이블명 modify 컬럼명 int not null auto_increment;
nodejs 에서 하는데 insert into 테이블명 set? , sql, function(req,res) 이런식으로 하는데 cmd로 테이블 명 옆에 col 리스트와 values 로 그 col 리스트만 적어줄떄와는 다르게 잘 들어가더라.
// 1. /movie , GET
router.get('/',function(req,res){
var responseData={};
var query=connection.query('select title from movie',function(err,rows){
if(err) throw(err);
if(rows[0]){
responseData.result=1;
responseData.data=rows;
}else {
responseData.result=0;
}
res.json(responseData);
})
})
// 2. /movie, POST
router.post('/',function(req,res){
var title=req.body.title;
var type=req.body.type;
var grade=req.body.grade;
var actor=req.body.actor;
var sql={title,type,grade,actor};
var query=connection.query('insert into movie set?',sql,function(err,rows){
if(err) throw err
return res.json({'result':1});
})
})
// 3. /movie/:title, GET
router.get('/:title',function(req,res){
var title=req.params.title;
console.log("title => ",title);
var responseData={};
var query=connection.query('select * from movie where title=?',[title],function(err,rows){
if(err) throw(err);
if(rows[0]){
responseData.result=1;
responseData.data=rows;
}else {
responseData.result=0;
}
res.json(responseData);
})
})
// 4. /movie/:title, DELETE
router.delete('/:title',function(req,res){
var title=req.params.title;
console.log("title => ",title);
var responseData={};
var query=connection.query('delete from movie where title=?',[title],function(err,rows){
if(err) throw(err);
if(rows.affectedRows>0){
responseData.result=1;
responseData.data=title;
}else {
responseData.result=0;
}
res.json(responseData);
})
})
'공부 기록들' 카테고리의 다른 글
2020.03.11 JSP(2) (0) | 2020.03.11 |
---|---|
2020.03.10 JSP (1) (0) | 2020.03.10 |
2020.02.19 백엔드 공부 (7) (0) | 2020.02.19 |
2020.02.14 & 02.17 백엔드 공부(5),(6) (0) | 2020.02.18 |
2020. 02. 10 백엔드 공부(4) (0) | 2020.02.10 |