寫一個小接口,用postman測試接口是否可行😝😝javascript
import express from 'express' import config from './config' import router from './router' import queryString from 'querystring' const app = express() app.use('/node_modules', express.static(config.node_modules_path)) app.use('/public', express.static(config.public_path)) // 解析處理表單 POST 請求體中間件 app.use((req, res, next) => { // 因爲表單 POST 請求可能會攜帶大量的數據,因此在進行請求提價的時候會分爲屢次提交 // 具體分爲多少次進行提交不必定,取決於數據量的大小 // 在 Node 中,對於處理這種不肯定的數據,使用事件的形式處理 // 這裏能夠經過監聽 req 對象的 data 事件,而後經過對應的回調處理函數中的參數 chunk 拿到每一次接收到的數據 // data 事件觸發多少次,不必定 // 當數據接收完畢以後,會自動觸發 req 對象的 end 事件,而後就能夠在 end 事件中使用接收到的表單 POST 請求體 let data = '' req.on('data', chunk => { data += chunk }) req.on('end', () => { // 手動給 req 對象掛載一個 body 屬性,值就是當前表單 POST 請求體對象 // 在後續的處理中間件中,就能夠直接使用 req.body 了 // 由於在同一個請求中,流通的都是同一個 req 和 res 對象 req.body = queryString.parse(data) next() }) }) // 掛載路由容器(路由容器中組織了網站功能處理路由中間件) app.use(router) app.listen(3000, () => { console.log('server is running at port 3000...') })
import express from 'express' // 建立一個路由容器,將全部的路由中間件掛載給路由容器 const router = express.Router() router.get('/', (req, res, next) => { res.render('index.html') }) router.post('/advert/add', (req, res, next) => { // 接口客戶端提交的數據 console.log(req.body) }) // 經過 export default 暴露的接口成員不能定義的同時直接暴露 // 最好先定義,再暴露 // export default 能夠直接暴露字面量 {} 123 export default router