使用TypeScript+Express+NodeJS+MongoDB 開發 Web APIs,如有錯誤可以擊提issue 💪,如果覺得ok,請點個star 🙏,
送人玫瑰、手有餘香
倉庫地址 ➡️FE_note
本系列文章
構建路由
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)
}
//...