やりたいこと
-
/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')
})