node+ts+express 構建 RESTful API 之路由構建

使用TypeScript+Express+NodeJS+MongoDB 開發 Web APIs,如有錯誤可以擊提issue 💪,如果覺得ok,請點個star 🙏, 送人玫瑰、手有餘香
倉庫地址 ➡️FE_note

本系列文章

  1. 搭建環境
  2. 構建路由
  3. 連接數據庫
  4. nodeJs 錯誤處理
  5. 權限認證與數據加密

構建路由

RESTful

  • GET:用來獲取資源
  • POST:用來新建資源(也可以用於更新資源)
  • PUT:用來更新資源
  • DELETE:用來刪除資源

目錄結構

├── README.md
├── package-lock.json
├── package.json
├── src
│   ├── app.ts
│   ├── controllers
│   │   └── userController.ts
│   ├── routes
│   │   ├── index.ts
│   │   └── user.ts
│   └── server.ts
├── tree.text
└── tsconfig.json

routers/index.ts

import { Router} from "express";
import user from './user'

const routes = Router();

routes.use('/user',user)

export default routes

routes/user.ts

import {Router} from 'express'
import UserController from '../controllers/userController'

const router=Router();

/**
 * @route /user
 * get: 獲取所有用戶
 * post:創建用戶
 */  
router
    .route('/')
    .get(UserController.listAll)
    .post(UserController.newUser)


/**
 * @route /user/:id
 * get:通過id 獲取用戶
 * put:編輯用戶
 * delete:刪除用戶
 */
router
    .route('/:id')
    .get(UserController.getOneById)
    .put(UserController.editUser)
    .delete(UserController.delUser)


export default router

controllers/userController.ts

import { Request, Response } from "express";
class UserController{
    static listAll=async (req:Request,res:Response)=>{
        console.log('list ALl');
    }
    static getOneById=async(req:Request,res:Response)=>{
        console.log('get one by id');
    }
    static newUser=async (req:Request,res:Response)=>{
        console.log('create user');
    }
   static editUser=async (req:Request,res:Response)=>{
        console.log('edit user');
    }
    static delUser=async (req:Request,res:Response)=>{
        console.log('del user');
    }
}
export default UserController

app.ts中引入路由

import routes from './routes'

//...
constructor(){
      this.app=express();
      this.config()
      // 引入路由
      this.app.use(routes)
  }
//...

👇下章連接數據庫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章