やりたいこと
-
/api/auth/signup
にGET
でリクエストされたら任意のJSONが返却されるAPIを作る -
/api/auth/login
にGET
でリクエストされたら任意のJSONが返却されるAPIを作る
全体像
処理の順番
- リクエストを
routes層
で受け取る -
routes層
で実際の処理の関数をコールする - 処理の関数は
controller層
で記述する - signup関数, login関数 がコールされたら任意の JSON が返却される
Controller
src/controllers/auth.ts
ファイルを新規で作成する
src/controllers/auth.ts
import { Request, Response } from 'express'
export const signup = async (req: Request, res: Response) => {
res.json({ message: 'Signup route' })
}
export const login = async (req: Request, res: Response) => {
res.json({ message: 'Login route' })
}
Routes
src/routes/auth.ts
ファイルを新規で作成する
src/routes/auth.ts
import { Router } from 'express'
import { login, signup } from '../controllers/auth'
const authRouter: Router = Router()
authRouter.get('/signup', signup)
authRouter.get('/login', login)
export default authRouter
src/routes/index.ts
ファイルを新規で作成する
src/routes/index.ts
import { Router } from 'express'
import authRouter from './auth'
const rootRouter: Router = Router()
rootRouter.use('/auth', authRouter)
export default rootRouter
エントリーファイル(index.ts)への記述
src/index.ts
ファイルに追記
src/routes/index.ts
import express, { Express, Request, Response } from 'express'
import { PORT } from './secrets'
import rootRouter from './routes' // <- 追記
const app: Express = express()
app.use(express.json()) // <- 追記
app.use('/api', rootRouter) // <- 追記
app.listen(PORT, () => {
console.log('Server is running on http://localhost:8000')
})