用nodejs寫接口(mock)

本文實現(xiàn)用nodejs搭建一個簡單的服務(wù)端,用json文件模擬數(shù)據(jù)庫,適合前端在模擬數(shù)據(jù)測試的時候使用

必備

  • node環(huán)境
  • express插件
  • body-parse 插件
  • fs插件

目錄結(jié)構(gòu)

文件內(nèi)容

  • nodeService.js

  const express = require('express')
  const bodyParser = require('body-parser')
  const fs = require('fs')
  
  function readText (pathname) {
    var bin = fs.readFileSync(pathname)
  
    if (bin[0] === 0xEF && bin[1] === 0xBB && bin[2] === 0xBF) {
      bin = bin.slice(3)
    }
  
    return bin.toString('utf-8')
  }
  
  // 創(chuàng)建express實例
  const app = express()
  // 設(shè)置跨域訪問
  app.all('*', function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*')
    res.header('Access-Control-Allow-Headers', 'X-Requested-With, accept, origin, content-type')
    res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS')
    res.header('X-Powered-By', ' 3.2.1')
    res.header('Content-Type', 'application/json;charset=utf-8')
    next()
  })
  // 將請求體變成熟悉的鍵值對樣子
  app.use(bodyParser.uselencoded({extended: false}))
  app.user(bodyParser.json())
  
  // 開始寫接口
  // 例:接口為/client/任意參數(shù), 就愛那個數(shù)據(jù)插入database的clients.json中
  app.route('/client/:id')
    .put((req, res) => {
    let options = req.body
    let id = req.params[0]
    let allClient = readText('./database/clients.json')
    let t = JSON.parse(allClient)
    for (let i in t) {
    if (JSON.parse(t[i]).id === id) {
      t[i] = JSON.stringify(options)
      fs.writeFileSync('./database/clients.json', JSON.stringify(t))
      let response = {
        msg: 'success',
        clients: t[i]
      }
      res.status(200)
      res.send(response)
      return
    }
  }
  res.status(500)
  res.send({msg: 'failed'})
  })
  
  // 開啟服務(wù)器
  const server = app.listen(3000, function() {
    var host = server.address().address
    var port = server.address().port
    console.log('Example app listening at http://%s:%s', host, port)
  })
  • fileDetail.json

[]

運行方式

  在該目錄下
  node nodeService.js

請求方式

$.ajax({
  url: 'localhost:3000/client/' + n //n為任意參數(shù),服務(wù)端通過req.params.id獲取
  type: 'put'
}).then((res) => { 
  console.log(res) 
}).catch((err) => {
  console.log(err)
})
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文實現(xiàn)用nodejs搭建一個簡單的服務(wù)端,用json文件模擬數(shù)據(jù)庫,適合前端在模擬數(shù)據(jù)測試的時候使用 必備 no...
    程序員之路閱讀 913評論 0 5
  • NodeJS的基本概念 NodeJS是什么? `官網(wǎng):https://nodejs.org/en/ Node.js...
    getElementsByMK閱讀 16,123評論 0 22
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評論 19 139
  • 個人入門學(xué)習(xí)用筆記、不過多作為參考依據(jù)。如有錯誤歡迎斧正 目錄 簡書好像不支持錨點、復(fù)制搜索(反正也是寫給我自己看...
    kirito_song閱讀 2,637評論 1 37
  • 既不貪求,也不懈怠,美德容易令人感到乏味,惡習(xí)令人厭倦。 然而存在于我們心底的那個東西,既不乏味也不會令人厭倦,...
    Vicky靈氣閱讀 279評論 0 0

友情鏈接更多精彩內(nèi)容