node之使用express寫介面
阿新 • • 發佈:2022-05-31
檔案1:
// 匯入 express const express = require('express') // 建立伺服器例項 const app = express() // 配置解析表單資料的中介軟體 app.use(express.urlencoded({ extended: false })) // 必須在配置 cors 中介軟體之前,配置 JSONP 的介面 app.get('/api/jsonp', (req, res) => { // TODO: 定義 JSONP 介面具體的實現過程 // 1. 得到函式的名稱 const funcName = req.query.callback// 2. 定義要傳送到客戶端的資料物件 const data = { name: 'zs', age: 22 } // 3. 拼接出一個函式的呼叫 const scriptStr = `${funcName}(${JSON.stringify(data)})` // 4. 把拼接的字串,響應給客戶端 res.send(scriptStr) }) // 一定要在路由之前,配置 cors 這個中介軟體,從而解決介面跨域的問題 const cors = require('cors') app.use(cors()) // 匯入路由模組 const router = require('./16.apiRouter')// 把路由模組,註冊到 app 上 app.use('/api', router) // 啟動伺服器 app.listen(80, () => { console.log('express server running at http://127.0.0.1') })
檔案2:
const express = require('express') const router = express.Router() // 在這裡掛載對應的路由 router.get('/get', (req, res) => { // 通過 req.query 獲取客戶端通過查詢字串,傳送到伺服器的資料 const query = req.query// 呼叫 res.send() 方法,向客戶端響應處理的結果 res.send({ status: 0, // 0 表示處理成功,1 表示處理失敗 msg: 'GET 請求成功!', // 狀態的描述 data: query, // 需要響應給客戶端的資料 }) }) // 定義 POST 介面 router.post('/post', (req, res) => { // 通過 req.body 獲取請求體中包含的 url-encoded 格式的資料 const body = req.body // 呼叫 res.send() 方法,向客戶端響應結果 res.send({ status: 0, msg: 'POST 請求成功!', data: body, }) }) // 定義 DELETE 介面 router.delete('/delete', (req, res) => { res.send({ status: 0, msg: 'DELETE請求成功', }) }) module.exports = router