티스토리 뷰

Express.js

const express = require('express');

const app = express();

app.get('/', (req, res) => {
    res.send("getting root");
})

app.get('/profile', (req, res) => {
    res.send("getting profile");
})

app.post('/profile', (req, res) => {
    const user = {
        name: "Sally",
        hobby: "soccer"
    }
    res.send(user)
})

app.listen(3000); // port 

express는 한줄 한줄 읽어서 시행한다. 첫 번째 요청의 경우 get method를 사용하여 그 url을 요청할 경우 {} 안의 작업을 보내주도록 한 것이다. 정말 말 그대로의 함수. get, post, put, delete method를 사용할 수 있다.

 

 

Express Middleware

const express = require('express');

const app = express();

// Middleware without calling next
app.use((req, res, next)=> {
    console.log("Hello");
})

app.get('/', (req, res) => {
    res.send("getting root");
})

app.listen(3000); 

위처럼 app.use를 시행하면 터미널에 "hello"만 찍힐 뿐, localhost는 계속 로딩을 한다. Middleware는 이름에서 유추할 수 있듯이 중간에 이를 거쳐서 내려가야 한다는 것이고, 이를 거쳐서 내려가기 위해선 next parameter를 불러야 한다.

const express = require('express');

const app = express();

// Middleware calling next
app.use((req, res, next)=> {
    console.log("Hello");
      next(); 
})

app.get('/', (req, res) => {
    res.send("getting root");
})

app.listen(3000);

위처럼 next를 불러주면 그제야 localhost에서 "getting root"를 보내준다.

 

 

POSTMAN

postman을 사용하면 post request를 사용할 수 있다.

post request는 get과 달리 body에 데이터를 전송할 수 있다. postman을 통해 key는 name, value은 wow라는 데이터를 send했다.

postman을 통한 body에 데이터 전송

 


그러나 그냥 요청하면 undefined가 찍힐 뿐이다.

undefined...

 

 

이를 해결하기 위해 추가적인 패키지가 필요하다. body-parser 라는 패키지를 설치한 후 이를 import해주고, 아래처럼 Middleware를 사용하여야 한다. (Content-Typeapplication/x-www-form-urlencoded)

const express = require('express');
const bodyParser = require('body-parser'); // 설치한 body-parser를 import

const app = express();

app.use(bodyParser.urlencoded({extended: false})); // Middleware 

app.post('/profile', (req, res) => {
    console.log(req.body); // body의 데이터를 요청 
    const user = {
        name: "Sally",
        hobby: "soccer"
    }
    res.send(user)
})

app.listen(3000); 

 

 

그러면 터미널에 데이터가 찍히는 것을 볼 수 있다.

key: name, value: wow

 

 

json을 보내는 것도 가능하다. raw로 들어가서 json을 선택하면 된다.

send JSON

 

 


그냥 send하면 빈 오브젝트를 리턴한다.

아래처럼 json을 parse하도록 추가해준다. 그러면 json을 리턴한다.

const express = require('express');
const bodyParser = require('body-parser');

const app = express();

// Middleware
app.use(bodyParser.urlencoded({extended: false})); // urlencoded parse
app.use(bodyParser.json()); // json을 parse하도록 함

app.post('/profile', (req, res) => {
    console.log(req.body); // body의 데이터를 요청 
    const user = {
        name: "Sally",
        hobby: "soccer"
    }
    res.send(user)
})

app.listen(3000); 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함