-
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๋ผ๋ ๋ณ์๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋ ๊ฐ๋ฅํจ!!
'Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
RESTful API๋? (0) 2023.11.14 ๐ session ๋ฐฉ์?token ๋ฐฉ์ (1) 2023.11.14 req.body/ req.params / req.query ์ ์ฐจ์ด์ +๋ฒ์ธ (Get,Post๋ฐฉ์์ ์ฐจ์ด์ ) (0) 2023.11.04 CRUD์ ๊ฐ๋ (0) 2023.08.21 Node.js < Submit๋ฒํผ ๋๋ฅด๋ฉด ํผ์ ์ ๋ ฅํ ์ ๋ชฉ๊ณผ ๋ ์ง ์๋ฒ๋ก ์ ๋ฌํ๊ธฐ>2 (0) 2023.08.20