매우 기본적인 라우트의 예시를 먼저 살펴본다
import express from "express";
import dotenv from "dotenv";
dotenv.config({path: __dirname + "/.env"});
const PORT: string | number = process.env.PORT || 3000;
const app = express();
app.get("/", (req: express.Request, res: express.Response, next: NextFunction): any => {
res.send("Hello world!");
});
app.listen(PORT, () => console.log("Running on TS-Express Server"))
.on("error", (err) => { throw new Error(`${err.name}: ${err.message}`) });
express는 http 메소드에 해당하는 라우팅 메소드를 지원한다
get, post, put, delete, ...
또한 경로 지정할 때 정규식을 사용해 경로를 지정할 수 있다
app.use("/auth", authRouter);
app.use("/main", mainRouter);
router를 사용할 때 보통 위처럼 여러 라우터를 사용하지만 index.js or app.js 에 보통 한 번에 넣지 않고 기본적인 환경설정을 담당하는 파일로만 사용하기 때문에 대부분 root router를 생성해서 사용한다
import express, { Request, Response, ErrorRequestHandler } from "express";
import authRouter from "./auth";
import mainRouter from "./main";
const rootRouter = express.Router();
rootRouter.get("/", (req: Request, res: Response) => {
res.render("main");
});
rootRouter.use("/auth", authRouter);
rootRouter.use("/main", mainRouter);
rootRouter.use(((err, req, res, next) => {
res.status(500).send(err);
}) as ErrorRequestHandler);
export default rootRouter;
import express from "express";
import dotenv from "dotenv";
import { PORT } from "./const";
import rootRouter from "./routers";
dotenv.config();
const app: express.Application = express();
app.set("view engine", "pug");
app.set("views", __dirname + "\\views");
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
app.use("/", rootRouter);
app.listen(PORT, () => console.log("Running on TS-Express Server")).on("error", (err) => {
throw new Error(`${err.name}: ${err.message}`);
});