ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • api๋“ค routesํด๋”๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ
    Node.js 2023. 11. 12. 22:22

     

    ๐Ÿฅ• ์™œ api๋“ค์„ ๋ถ„๋ฆฌํ•ด์•ผํ•˜๋Š”๊ฐ€?

    ๊ฐœ๋ฐœํ•˜๋‹ค๋ณด๋ฉด api๊ฐ€ ์ ์  server.js์— ๋Š˜์–ด๋‚˜๊ฒŒ ๋˜๋Š”๋ฐ ๊ฐ๊ฐํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค๋„ ๋‹ค๋ฅด๊ณ ,
    ํ•œ๋ฒˆ์— ๋ชฐ์•„๋„ฃ์œผ๋ฉด ์ˆ˜์ •ํ•  ๋•Œ๋„ ์ฐพ๊ธฐ ํž˜๋“ค๋‹ค!
    ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š”  routes๋ผ๋Š” ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ด€๋ จ api๋“ค์„ ๋ถ„๋ฆฌํ•ด์„œ ๊ด€๋ฆฌํ•ด์ฃผ๋„๋ก ํ•˜์ž!

     

    server.js

    app.get('/shop/shirts', (req,res)=>{
        res.send('์…”์ธ ํŒŒ๋Š”ํŽ˜์ด์ง€')
    })
    
    app.get('/shop/dress', (req,res)=>{
        res.send('๋“œ๋ ˆ์ŠคํŒŒ๋Š” ํŽ˜์ด์ง€')
    })

     

    ์‡ผํ•‘๋ชฐ์˜ ํŽ˜์ด์ง€์— ๊ด€๋ จ๋œ api๋“ค์„ shop.jsํŒŒ์ผ์— ๋‹ด์•„์ค„๊ฒƒ์ด๋‹ค. (server.js์™€ ๊ฐ™์€์œ„์น˜๋กœ ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์คŒ)

     

     shop.js

    const router = require('express').Router();
    
    
    router.get('/shop/shirts', (req,res)=>{
        res.send('์…”์ธ ํŒŒ๋Š”ํŽ˜์ด์ง€')
    })
    
    router.get('/shop/dress', (req,res)=>{
        res.send('๋“œ๋ ˆ์ŠคํŒŒ๋Š” ํŽ˜์ด์ง€')
    })
    
    module.exports = router;

     

    router๋ฅผ requireํ•ด์ฃผ๊ณ  app => router๋กœ ๋ณ€ํ™˜ ํ›„

    router module์„ exportsํ•ด์ฃผ์ž!!

     

    server.js

    app.use('/', require('./routes/shop'));

     

    => ๋ฏธ๋“ค์›จ์–ด์‹์œผ๋กœ ๋“ฑ๋กํ•ด์ฃผ์–ด์„œ ํŽธํ•˜๊ฒŒ router๋ฅผ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ

    / ๊ฒฝ๋กœ๋กœ ๋“ค์–ด์˜ค๋ฉด shopRouter๋กœ api๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒํ•จ

     

    ๐Ÿฅ• ๊ณตํ†ต๋œ URL ์‹œ์ž‘๋ถ€๋ถ„์€ ๋ฏธ๋“ค์›จ์–ด๋กœ ๋“ฑ๋กํ•ด์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•จ ( ํ•œ๋ˆˆ์— ๋ณด๊ธฐ ์‰ฝ๋‹ค)

     shop.js

    const router = require('express').Router();
    
    
    router.get('/shop/shirts', (req,res)=>{
        res.send('์…”์ธ ํŒŒ๋Š”ํŽ˜์ด์ง€')
    })
    
    router.get('/shop/dress', (req,res)=>{
        res.send('๋“œ๋ ˆ์ŠคํŒŒ๋Š” ํŽ˜์ด์ง€')
    })
    
    module.exports = router;

    => ์œ„์˜ ์ฝ”๋“œ์—์„œ /shop๊ฒฝ๋กœ๊ฐ€ ์ค‘๋ณต์ด ๋˜๋Š”๊ฒƒ์ด ๋ณด์ž„

     

    server.js

    ๋ฏธ๋“ค์›จ์–ด์— /shop์œผ๋กœ ๋“ฑ๋ก

    const shopRouter = require('./routes/shop');
    app.use('/shop', shopRouter);

     

    ์œ„์˜ ์ฝ”๋“œ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ถ•์•ฝํ•ด์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅ

    app.use('/shop', require('./routes/shop'));

     

    shop.js

    const router = require('express').Router();
    
    
    router.get('/shirts', (req,res)=>{
        res.send('์…”์ธ ํŒŒ๋Š”ํŽ˜์ด์ง€')
    })
    
    router.get('/dress', (req,res)=>{
        res.send('๋“œ๋ ˆ์ŠคํŒŒ๋Š” ํŽ˜์ด์ง€')
    })
    
    module.exports = router;

    => shop.js์—์„  ' /shop'์ด๋ผ๋Š” ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์„ค์ •ํ•ด ์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— /shop์„ ์ œ์™ธํ•œ ๊ฒฝ๋กœ๋ฅผ ์จ์ฃผ์–ด์•ผ ํ•จ

     

    ๊ด€๋ จ์žˆ๋Š” api๋“ค์€ url ๋น„์Šทํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒŒ ์ข‹๋‹ค!! ๊ด€๋ฆฌํ•˜๊ธฐ๋„ ํŽธํ•˜๊ธฐ ๋•Œ๋ฌธ!!

    ๐Ÿฅ• But, ๋ถ„๋ฆฌํ•œ ํŒŒ์ผ๋“ค์—๋Š” db๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค!! 

    => db ๋ฅผ database.js์— ๋”ฐ๋กœ ์ €์žฅํ•ด์ฃผ๊ณ 
    ๊ฐ๊ฐ ํ•„์š”ํ•œ ๋ผ์šฐํ„ฐ๋“ค์ด ๋“ค์–ด์žˆ๋Š” ํŒŒ์ผ์— requireํ•ด์„œ ์จ์ฃผ๋ฉด ํ•ด๊ฒฐ~!

     

    server.js์™€ ๊ฐ™์€ ์œ„์น˜์— configํด๋”๋งŒ๋“ค๊ณ  database.jsํŒŒ์ผ ๋งŒ๋“ค์–ด์คŒ

     

    database.js

    const {MongoClient} =require("mongodb");
    
    const url = process.env.DB_URL;
    let connectDB = new MongoClient(url).connect()
    
    
    module.exports = connectDB

     

    server.js

    const { MongoClient, ObjectId } = require('mongodb')
    
    let connectDB = require('./config/database.js')
    
    let db;
    connectDB.then((client) => {
        console.log('DB์—ฐ๊ฒฐ์„ฑ๊ณต')
        db = client.db('project');
        app.listen(process.env.PORT, () => {
            console.log('http://localhost:3001์—์„œ ์„œ๋ฒ„ ์‹คํ–‰์ค‘')
        })
    }).catch((err) => {
        console.log(err)
    })

    => connectDB๋ฅผ require๋กœ ๊ฐ€์ ธ์™€์„œ ์—ฐ๊ฒฐํ•ด์ฃผ์—ˆ๋‹ค!!

     

    shop.js ์—์„œ๋„ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ์Œ!!

    const router = require('express').Router();
    
    let connectDB = require('./config/database.js')
    
    let db;
    connectDB.then((client) => {
        console.log('DB์—ฐ๊ฒฐ์„ฑ๊ณต')
        db = client.db('project');
        }).catch((err) => {
        console.log(err)
    })
    
    router.get('/shirts', async(req,res)=>{
        await db.collection('post').fing().toArray()
        res.send('์…”์ธ ํŒŒ๋Š”ํŽ˜์ด์ง€')
    })
    
    router.get('/dress', (req,res)=>{
        res.send('๋“œ๋ ˆ์ŠคํŒŒ๋Š” ํŽ˜์ด์ง€')
    })
    
    module.exports = router;

    => db๋ผ๋Š” ๋ณ€์ˆ˜๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™ ๊ฐ€๋Šฅํ•จ!!

     

     

Designed by Tistory.