- 為了不讓伺服器過載,請設計一個 middleware
- 限制每小時來自同一個 IP 的請求數量不得超過 1000
- 在 response headers 中加入剩餘的請求數量 (X-RateLimit-Remaining) 以及 rate + limit 歸零的時間 (X-RateLimit-Reset)
- 如果超過限制的話就回傳 429 (Too Many Requests)
- 可以使用各種資料庫達成
cd dcard_intern_pre_homework
npm install
npm start
visit http://127.0.0.1:5000
- callback hell
- Nodejs express
- MySQL
CREATE TABLE `ip_table` (
`ip_addr` TEXT NOT NULL DEFAULT '',
`req_times` INT(11) NOT NULL DEFAULT 0,
`dead_time` DATETIME NULL DEFAULT NULL
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;
└── dcard_intern_pre_homework
├── app.js
├── models
│ └── sqlModel.js
├── package.json
├── public
│ └── index.html
├── README.md
└── routes
├── alldata.js
├── draw.js
└── index.js