用nodejs寫接口(mock)

本文實現用nodejs搭建一個簡單的服務端,用json文件模擬數據庫,適合前端在模擬數據測試的時候使用

必備

node環境

express插件

body-parse 插件

fs插件

目錄結構

文件內容

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')

}

// 創建express實例

const app = express()

// 設置跨域訪問

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/任意參數, 就愛那個數據插入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'})

})

// 開啟服務器

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為任意參數,服務端通過req.params.id獲取

type: 'put'

}).then((res) => {

console.log(res)

}).catch((err) => {

console.log(err)

})

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容