express 기본 및 HTTP Methods
설치
$ npm install express --save
서버 실행
- 실행 방법은 아래코드가 저장되어있는 자바스크립트 파일을 만들고 해당 파일을 cmd 창에서 node '자바스립트 파일명' 수행 하면 서버가 실행 된다. 
- 3333포트로 서버를 실행 시키며 정상적으로 실행 될 경우 listen의 콜백함수가 호출 된다.
- 서버 실행 후 http://localhost:3333/ 접속 가능
const express = require('express'); 
const app = express();
let portNumber = 3333;
app.listen(portNumber, () => {
    console.log(`start ${portNumber} prot`); 
});

외부 접근시 Access-Control-Allow-Origin 오류 해결 방법
const cors = require('cors'); // Access-Control-Allow-Origin  해결 모듈
app.use(cors());
HTTP Methods
- GET: getting data
- POST: creating data
- PUT: updating data
- DELETE: deleting data
get(getting data)
get
- http://localhost:3333/user 웹브라우저에 접속 시 userInfos 오브젝트를 클라이언트로 전달 한다.
let userInfos=[
    {name:'아무개',age:22},
    {name:'강아지',age:32},
    {name:'소나무',age:42}
];
app.get('/user', function(request,response){
  // 응답 코드 200과 함께 데이터 클라이언트에게 전달 
    response.status(200).send(userInfos); 
});
Route Parameter
- httpp://localhost:3333/user/1 로 접속 하면 "app.get('/user/:id' " 선언되어있는 callback 함수가 호출 되고 request 매개변수의 params 객체 안에 id:1의 값을 확인 할 수 있다. 
- 넘겨받은 파라미터를 데이터를 조회 하거나 할때 없으면 response.status(404) 에러를 전달 하여 예외 처리를 할수 있다
app.get('/user/:id', function (request, response) {
    console.log('request.params.id', request.params.id);
    response.status(200).send(request.params.id); 
});
- 라우터 파리미터 여러개도 전달 가능
- "httpp://localhost:3333/user/1/테스트입니다" 로 접속 하면 "app.get('/user/:id/:searchName' " 선언되어있는 callback 함수가 호출 되고 request 매개변수의 params 객체 안에 id,searchName의 클라이언트에서 전달한 값을 확인 할 수 있다. 
app.get('/user/:id/:searchName', function (request, response) {
    console.log('request.params.id', request.params.id);
    console.log('request.params.searchName', request.params.searchName);
    response.status(200).send(''); 
});
Query string parameter
- "http://localhost:3333/user/?name=아무개&age=3333" 클라이언트에서 호출 시 request.query에 name과 age의 각 프로퍼티 값을 확인하여 아무개와 3333의 값을 확인 할 수 있다.
app.get('/user', function (request, response) {
    console.log('request.query', request.query);    
    response.status(200).send(''); 
});
post(creating data)
- 데이터 추가 시 post를 사용 
- 클라이언트 헤더가 application/x-www-form-urlencoded 인경우 use에 express.json() urlencoded 사용해야 request.body에 데이터를 받을 수 있다.
app.use(express.json()) 
app.use(express.urlencoded({extended: true}))
app.post('/user', function (request, response) {
    console.log('post request.body', request.body);
    response.status(200).send(''); 
});
put(updating data)
- 데이터 update 시 사용
- post와 동작 방식은 동일하다
app.use(express.json()) 
app.use(express.urlencoded({extended: true}))
app.put('/user', function (request, response) {
    console.log('put request.body', request.body);
    response.status(200).send(''); 
});
delete(deleting data)
- 데이터 삭제 시 사용 하며 사용법은 get이랑 비슷
app.delete('/user/:id', function (request, response) {
    console.log('delete request.params.id', request.params.id);
    response.status(200).send(''); 
});
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Author And Source
                            
                            이 문제에 관하여(express 기본 및 HTTP Methods), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://velog.io/@ljwasboy/express를-활용한-WebServer
                            
                            
                            
                                저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
$ npm install express --save
- 실행 방법은 아래코드가 저장되어있는 자바스크립트 파일을 만들고 해당 파일을 cmd 창에서 node '자바스립트 파일명' 수행 하면 서버가 실행 된다.
- 3333포트로 서버를 실행 시키며 정상적으로 실행 될 경우 listen의 콜백함수가 호출 된다.
- 서버 실행 후 http://localhost:3333/ 접속 가능
const express = require('express'); const app = express(); let portNumber = 3333; app.listen(portNumber, () => { console.log(`start ${portNumber} prot`); });
외부 접근시 Access-Control-Allow-Origin 오류 해결 방법
const cors = require('cors'); // Access-Control-Allow-Origin  해결 모듈
app.use(cors());
HTTP Methods
- GET: getting data
- POST: creating data
- PUT: updating data
- DELETE: deleting data
get(getting data)
get
- http://localhost:3333/user 웹브라우저에 접속 시 userInfos 오브젝트를 클라이언트로 전달 한다.
let userInfos=[
    {name:'아무개',age:22},
    {name:'강아지',age:32},
    {name:'소나무',age:42}
];
app.get('/user', function(request,response){
  // 응답 코드 200과 함께 데이터 클라이언트에게 전달 
    response.status(200).send(userInfos); 
});
Route Parameter
- httpp://localhost:3333/user/1 로 접속 하면 "app.get('/user/:id' " 선언되어있는 callback 함수가 호출 되고 request 매개변수의 params 객체 안에 id:1의 값을 확인 할 수 있다. 
- 넘겨받은 파라미터를 데이터를 조회 하거나 할때 없으면 response.status(404) 에러를 전달 하여 예외 처리를 할수 있다
app.get('/user/:id', function (request, response) {
    console.log('request.params.id', request.params.id);
    response.status(200).send(request.params.id); 
});
- 라우터 파리미터 여러개도 전달 가능
- "httpp://localhost:3333/user/1/테스트입니다" 로 접속 하면 "app.get('/user/:id/:searchName' " 선언되어있는 callback 함수가 호출 되고 request 매개변수의 params 객체 안에 id,searchName의 클라이언트에서 전달한 값을 확인 할 수 있다. 
app.get('/user/:id/:searchName', function (request, response) {
    console.log('request.params.id', request.params.id);
    console.log('request.params.searchName', request.params.searchName);
    response.status(200).send(''); 
});
Query string parameter
- "http://localhost:3333/user/?name=아무개&age=3333" 클라이언트에서 호출 시 request.query에 name과 age의 각 프로퍼티 값을 확인하여 아무개와 3333의 값을 확인 할 수 있다.
app.get('/user', function (request, response) {
    console.log('request.query', request.query);    
    response.status(200).send(''); 
});
post(creating data)
- 데이터 추가 시 post를 사용 
- 클라이언트 헤더가 application/x-www-form-urlencoded 인경우 use에 express.json() urlencoded 사용해야 request.body에 데이터를 받을 수 있다.
app.use(express.json()) 
app.use(express.urlencoded({extended: true}))
app.post('/user', function (request, response) {
    console.log('post request.body', request.body);
    response.status(200).send(''); 
});
put(updating data)
- 데이터 update 시 사용
- post와 동작 방식은 동일하다
app.use(express.json()) 
app.use(express.urlencoded({extended: true}))
app.put('/user', function (request, response) {
    console.log('put request.body', request.body);
    response.status(200).send(''); 
});
delete(deleting data)
- 데이터 삭제 시 사용 하며 사용법은 get이랑 비슷
app.delete('/user/:id', function (request, response) {
    console.log('delete request.params.id', request.params.id);
    response.status(200).send(''); 
});
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Author And Source
                            
                            이 문제에 관하여(express 기본 및 HTTP Methods), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://velog.io/@ljwasboy/express를-활용한-WebServer
                            
                            
                            
                                저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
const cors = require('cors'); // Access-Control-Allow-Origin  해결 모듈
app.use(cors());
- GET: getting data
- POST: creating data
- PUT: updating data
- DELETE: deleting data
get(getting data)
get
- http://localhost:3333/user 웹브라우저에 접속 시 userInfos 오브젝트를 클라이언트로 전달 한다.
let userInfos=[
    {name:'아무개',age:22},
    {name:'강아지',age:32},
    {name:'소나무',age:42}
];
app.get('/user', function(request,response){
  // 응답 코드 200과 함께 데이터 클라이언트에게 전달 
    response.status(200).send(userInfos); 
});
Route Parameter
- httpp://localhost:3333/user/1 로 접속 하면 "app.get('/user/:id' " 선언되어있는 callback 함수가 호출 되고 request 매개변수의 params 객체 안에 id:1의 값을 확인 할 수 있다. 
- 넘겨받은 파라미터를 데이터를 조회 하거나 할때 없으면 response.status(404) 에러를 전달 하여 예외 처리를 할수 있다
app.get('/user/:id', function (request, response) {
    console.log('request.params.id', request.params.id);
    response.status(200).send(request.params.id); 
});
- 라우터 파리미터 여러개도 전달 가능
- "httpp://localhost:3333/user/1/테스트입니다" 로 접속 하면 "app.get('/user/:id/:searchName' " 선언되어있는 callback 함수가 호출 되고 request 매개변수의 params 객체 안에 id,searchName의 클라이언트에서 전달한 값을 확인 할 수 있다. 
app.get('/user/:id/:searchName', function (request, response) {
    console.log('request.params.id', request.params.id);
    console.log('request.params.searchName', request.params.searchName);
    response.status(200).send(''); 
});
Query string parameter
- "http://localhost:3333/user/?name=아무개&age=3333" 클라이언트에서 호출 시 request.query에 name과 age의 각 프로퍼티 값을 확인하여 아무개와 3333의 값을 확인 할 수 있다.
app.get('/user', function (request, response) {
    console.log('request.query', request.query);    
    response.status(200).send(''); 
});
post(creating data)
- 데이터 추가 시 post를 사용 
- 클라이언트 헤더가 application/x-www-form-urlencoded 인경우 use에 express.json() urlencoded 사용해야 request.body에 데이터를 받을 수 있다.
app.use(express.json()) 
app.use(express.urlencoded({extended: true}))
app.post('/user', function (request, response) {
    console.log('post request.body', request.body);
    response.status(200).send(''); 
});
put(updating data)
- 데이터 update 시 사용
- post와 동작 방식은 동일하다
app.use(express.json()) 
app.use(express.urlencoded({extended: true}))
app.put('/user', function (request, response) {
    console.log('put request.body', request.body);
    response.status(200).send(''); 
});
delete(deleting data)
- 데이터 삭제 시 사용 하며 사용법은 get이랑 비슷
app.delete('/user/:id', function (request, response) {
    console.log('delete request.params.id', request.params.id);
    response.status(200).send(''); 
});
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Author And Source
                            
                            이 문제에 관하여(express 기본 및 HTTP Methods), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://velog.io/@ljwasboy/express를-활용한-WebServer
                            
                            
                            
                                저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
- http://localhost:3333/user 웹브라우저에 접속 시 userInfos 오브젝트를 클라이언트로 전달 한다.
let userInfos=[
    {name:'아무개',age:22},
    {name:'강아지',age:32},
    {name:'소나무',age:42}
];
app.get('/user', function(request,response){
  // 응답 코드 200과 함께 데이터 클라이언트에게 전달 
    response.status(200).send(userInfos); 
});- httpp://localhost:3333/user/1 로 접속 하면 "app.get('/user/:id' " 선언되어있는 callback 함수가 호출 되고 request 매개변수의 params 객체 안에 id:1의 값을 확인 할 수 있다.
- 넘겨받은 파라미터를 데이터를 조회 하거나 할때 없으면 response.status(404) 에러를 전달 하여 예외 처리를 할수 있다
app.get('/user/:id', function (request, response) {
    console.log('request.params.id', request.params.id);
    response.status(200).send(request.params.id); 
});- 라우터 파리미터 여러개도 전달 가능
- "httpp://localhost:3333/user/1/테스트입니다" 로 접속 하면 "app.get('/user/:id/:searchName' " 선언되어있는 callback 함수가 호출 되고 request 매개변수의 params 객체 안에 id,searchName의 클라이언트에서 전달한 값을 확인 할 수 있다.
app.get('/user/:id/:searchName', function (request, response) {
    console.log('request.params.id', request.params.id);
    console.log('request.params.searchName', request.params.searchName);
    response.status(200).send(''); 
});- "http://localhost:3333/user/?name=아무개&age=3333" 클라이언트에서 호출 시 request.query에 name과 age의 각 프로퍼티 값을 확인하여 아무개와 3333의 값을 확인 할 수 있다.
app.get('/user', function (request, response) {
    console.log('request.query', request.query);    
    response.status(200).send(''); 
});
- 데이터 추가 시 post를 사용
- 클라이언트 헤더가 application/x-www-form-urlencoded 인경우 use에 express.json() urlencoded 사용해야 request.body에 데이터를 받을 수 있다.
app.use(express.json()) app.use(express.urlencoded({extended: true})) app.post('/user', function (request, response) { console.log('post request.body', request.body); response.status(200).send(''); });
put(updating data)
- 데이터 update 시 사용
- post와 동작 방식은 동일하다
app.use(express.json()) 
app.use(express.urlencoded({extended: true}))
app.put('/user', function (request, response) {
    console.log('put request.body', request.body);
    response.status(200).send(''); 
});
delete(deleting data)
- 데이터 삭제 시 사용 하며 사용법은 get이랑 비슷
app.delete('/user/:id', function (request, response) {
    console.log('delete request.params.id', request.params.id);
    response.status(200).send(''); 
});
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Author And Source
                            
                            이 문제에 관하여(express 기본 및 HTTP Methods), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://velog.io/@ljwasboy/express를-활용한-WebServer
                            
                            
                            
                                저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
- 데이터 update 시 사용
- post와 동작 방식은 동일하다
app.use(express.json()) 
app.use(express.urlencoded({extended: true}))
app.put('/user', function (request, response) {
    console.log('put request.body', request.body);
    response.status(200).send(''); 
});
- 데이터 삭제 시 사용 하며 사용법은 get이랑 비슷
app.delete('/user/:id', function (request, response) { console.log('delete request.params.id', request.params.id); response.status(200).send(''); });
Author And Source
이 문제에 관하여(express 기본 및 HTTP Methods), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ljwasboy/express를-활용한-WebServer저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)